来了(贪心算法)"/>
世界杯来了(贪心算法)
题目描述:
2014年是世界杯年,小明作为一个资深球迷必然不会错过这场足球界的饕餮盛宴。但是由于比赛太多,而且并不是任何时间小明都能够看球赛,所以小明把他重点关注的那些球赛的转播时间表给你,希望你能够帮他合理安排一下,让他能够尽量多的看到完整的球赛。(注意,一场比赛结束观看,可以立马看另一场比赛,也就是一场比赛结束和一场比赛开始的时间相同是不冲突的)
输入格式:
输入包含多组测试数据,每组输入的第一行是一个整数n(n<=100),表示小明重点关注的球赛数目。(实际上一届世界杯总共有64场球赛,这里我们假设一届世界杯最多有100场比赛)
接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i场球赛的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。(这里我们也不限制每场球赛必须是90分钟)
当n=0时,输入结束。
输出格式:
对于每组输入,输出一行,表示能完整看到的球赛的场数。
样例输入:
8 39 81 16 79 87 93 81 90 79 83 97 100 87 98 89 100 0
样例输出:
4
时间限制: 1000ms
空间限制: 32MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){int n,a[101]={},b[101]={};while(1){cin>>n;if(n==0){break;}for(int i=1;i<=n;i++){cin>>a[i]>>b[i];}for(int i=1;i<n;i++){for(int j=1;j<n;j++){if(b[j]>b[j+1]){swap(b[j],b[j+1]);swap(a[j],a[j+1]);}}}int end=b[1],c=1;for(int i=2;i<=n;i++){if(a[i]>=end){end=b[i];c++;}}cout<<c<<endl;}return 0;
}
更多推荐
世界杯来了(贪心算法)
发布评论