比赛 防止浮躁的小练习v0.2 评测结果 AAAAAAAAAAAAAAAAAAAAA
题目名称 贴海报 最终得分 100
用户昵称 Janis 运行时间 0.011 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2016-10-08 09:18:05
显示代码纯文本
#include<cstdio>//浮水法初学
#include<iostream>
#include<algorithm>
using namespace std;

int n,m,ans=1;//至少可以看出一张海报
int a[1050],b[1050];//区间[a,b]
bool vis[1050];

void dfs(int l,int r,int cur,int pos){
	if(vis[pos])return;
	while((cur<=m) && (l>=b[cur] || r<=a[cur]))cur++;
	if(cur>m){ans++;vis[pos]=1;return;}
	if(l<a[cur] && r>a[cur])dfs(l,a[cur],cur+1,pos);
	if(l<b[cur] && r>b[cur])dfs(b[cur],r,cur+1,pos);
}
int main()
{
	#ifndef DEBUG
		string FileName="ha14d";
		freopen((FileName+".in").c_str(),"r",stdin);
		freopen((FileName+".out").c_str(),"w",stdout);
	#endif
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)scanf("%d%d",&a[i],&b[i]),b[i]++;//左闭右闭区间
	for(int i=m-1;i>=1;i--)dfs(a[i],b[i],i+1,i);//从最后的一张海报开始贴
	printf("%d",ans);
}