比赛 |
防止浮躁的小练习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);
}