1 条题解
-
0
C :
#include<stdio.h> #include<string.h> #include<stdlib.h> struct num{ int b,c; }a[10002]; int cmp(const void *x,const void *y){ struct num * a1=(struct num *)x; struct num * a2=(struct num *)y; if(a1->c!=a2->c) return (a1->c<a2->c)?-1:1; else return (a1->b<a2->b)?-1:1; } int main() { int m; scanf("%d",&m); while(m--){ int n,i,p,count=1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&a[i].b,&a[i].c); qsort(a,n,sizeof(a[0]),cmp); p=a[0].c; for(i=1;i<n;i++){ if(a[i].b>p){ count++; p=a[i].c; } } printf("%d\n",count); } return 0; }
C++ :
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struct node { int start; int end; }s[10003]; bool cmp(node x,node y) { if(x.end==y.end) return x.start>y.start; return x.end<y.end; } int main() { int test,num,n,flag,i; scanf("%d",&test); while(test--) { num = 1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&s[i].start,&s[i].end); sort(s,s+n,cmp); flag = s[0].end; for(i=1;i<n;i++) if(s[i].start>flag) { num ++; flag = s[i].end; } printf("%d\n",num); } return 0; }
- 1
信息
- ID
- 705
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者