dongtian @ 2022-12-29 11:31:53
#include<stdio.h>
int a[1000][1000];
int main() {
int i,j,l,m,temp,tmp,k,y=0,u;
scanf("%d%d",&l,&m);
for(i=0; i<m; i++)
for(j=0; j<2; j++)
scanf("%d",&a[i][j]);
temp=a[0][0];
tmp=a[0][1];
for(i=0; i<m; i++)
for(j=i; j<m; j++) {
if(a[i][0]>a[j][0]) {
temp=a[i][0];
tmp=a[i][1];
a[i][0]=a[j][0];
a[i][1]=a[j][1];
a[j][0]=temp;
a[j][1]=tmp;
}
}
for(i=0; i<m; i++) {
if(a[i+1][0]<=a[i][1])
a[i+1][0]=a[i][1]+1;
}
for(i=0; i<m; i++) {
k=a[i][1]-a[i][0]+1;
if(k>0)
y+=k;
}
u=l+1-y;
printf("%d",u);
return 0;
}
by Jasonshan10 @ 2023-01-12 20:09:45
写的过于复杂 详见此代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int l,m,ans=0;
scanf("%d %d",&l,&m);
const int MAXN=l+1;
int t[MAXN]={0};//存为一个桶,0为不用移,1为要移;
for(int i=0;i<m;++i){
int a,b;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;++i){
t[i]=1;
}
}
for(int i=0;i<=l;++i){
if (t[i]==0){
ans++;
}
}
printf("%d",ans);
return 0;
}