1 500 3 150 300 100 200 470 471
298
hzyqazasdf
#include#include int a[10002]; int main() { int test,i,m,n,ans,t,k; scanf("%d",&test); while(test--) { scanf("%d %d",&m,&n); memset(a,0,sizeof(a)); while(n--) { scanf("%d%d",&t,&k); for(i=t;i<=k;i++) a[i]=1; } for(i=0,ans=0;i<=m;i++) { if(!a[i]) ans++; } printf("%d\n",ans); } return 0; }
/*這種方法更常規,可以解決大數據問題,如果用標記果斷超時。 這道題必須從i=0開始,ans=0,躺若賦值ans=data[0].j-data[0].k+1, i=1開始循環,就一直WA。題目都說n>=1了,數據真弱,我也是醉了。。。 */ #include#include #include using namespace std; struct st { int k; int j; }data[10010]; int cmp(st a,st b) { if(a.k!=b.k) return a.k t) { ans+=data[i].j-data[i].k+1; t=data[i].j; } else if(data[i].j>t&&data[i].k<=t) { ans=ans+data[i].j-t; t=data[i].j; } } printf("%d\n",m-ans+1); } return 0; }