题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=14
其实就是贪心算法,感觉写的跟昨天的动物统计差不多,错觉?直接水过。
代码:
#include<stdio.h> #include<algorithm> using namespace std; struct hc { int first;//开始时间**// int last;//**结束时间**// }w[10001]; bool comp(hc x,hc y)//**将时间进行比较,找结束时间最快的**// { if(x.last<y.last) return true; return false; } int main() { int s,n,i,p,count; scanf("%d",&s); while(s--) { scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&w[i].first,&w[i].last); } sort(w,w+n,comp); p=0;count=1;//**因为是从第二个开始比较的,所以count初始为1**// for(i=1;i<n;i++) { if(w[i].first>w[p].last) { count++; i=p;//**比较后修改下标**// } } printf("%d\n",count); } return 0; }