60分求助

P3740 [HAOI2014] 贴海报

Grisses @ 2021-12-06 13:36:20

#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;
}

这里


|