题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=14
其实就是贪心算法,感觉写的跟昨天的动物统计差不多,错觉?直接水过。
表示代码中p=i错了,应该是p=i;当时写的时候不小心,已修改。。。。。
代码:
#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++;
p=i;//**比较后修改下标**//
}
}
printf("%d\n",count);
}
return 0;
}