60分求助
查看原帖
60分求助
428358
Grisses楼主2021/12/6 13:36
#include<bits/stdc++.h>
using namespace std;
int n,m,tot,p[2005],cnt,l[2005],ans;
struct node{
	int a,b;
}a[1005];
map<int,int>s;
map<int,bool>M;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)scanf("%d%d",&a[i].a,&a[i].b),a[i].b=min(n,a[i].b),p[++tot]=a[i].a,p[++tot]=a[i].b;
	sort(p+1,p+tot+1);
	for(int i=1;i<=tot;i++)if(p[i]!=p[i-1])s[p[i]]=++cnt;
	for(int i=1;i<=m;i++){
		for(int j=s[a[i].a];j<=s[a[i].b];j++)l[j]=i;
	}
	for(int i=1;i<=cnt;i++){
		cerr<<l[i]<<' ';
		if(M.count(l[i])==0){
			ans++;
			M[l[i]]=1;
		}
	}
	printf("%d",ans);
	return 0;
}

这里

2021/12/6 13:36
加载中...