tuliwen233 @ 2024-11-05 13:34:01
这样打为什么不行,20pts,哪里错了
#include<bits/stdc++.h>
using namespace std;
struct str{
int l,r;
}a[110];
bool f[10010];
bool cmp(str x,str y)
{
return x.l<y.l;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
int n,m,cnt=1;
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>a[i].l>>a[i].r;
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++)
{
for(int j=i+1;j<=m;j++)
{
if(a[j].l!=-1 && a[i].r>=a[j].l)
{
a[i].r=a[j].r;
a[j].l=-1;
cnt++;
}
}
}
sort(a+1,a+m+1,cmp);
for(int i=cnt;i<=m;i++)
{
// cout<<a[i].l<<' '<<a[i].r<<endl;
n-=(a[i].r-a[i].l+1);
}
cout<<n+1;
return 0;
}
by tengyuxuan @ 2024-11-15 12:16:25
其实不用那么复杂,我的代码:
#include <bits/stdc++.h>
using namespace std;
struct im{
int l;
int r;
};
int main(){
int n,m,sum=0;
cin>>n>>m;
im a[10010];
for(int i=0;i<m;i++){
cin>>a[i].l>>a[i].r;
}
bool b[10010];
for(int i=0;i<=n;i++){
b[i]=true;
}
for(int i=0;i<m;i++){
for(int j=a[i].l;j<=a[i].r;j++){
b[j]=0;
}
}
for(int i=0;i<=n;i++){
if(b[i]==1){
sum++;
}
}
cout<<sum;
return 0;
}
by tengyuxuan @ 2024-11-15 12:16:50
@tuliwen233