hpuoj【1216】复习! 复习!【贪心】
来源:互联网 发布:v380监控软件安卓版 编辑:程序博客网 时间:2024/06/06 18:18
1216: 复习!复习! [贪心]
时间限制: 1 Sec 内存限制: 128 MB提交: 108 解决: 32 统计
题目描述
马上到要放假了,也意味着马上要考试了。
王炸突然发现他只顾着学acm忘了学习功课,为了避免考试挂科,他决定进行一次复习以让更多的功课及格。
已知他现在有n门功课,每门功课都有一个开始复习和复习完毕的时间[st,endd)来表示。
求他最多可以复习多少门功课。
输入
数据的第一行输入一个整数T,表示数据的组数。(0 < T < 300)
以后的T组数据,第一行输入一个整数n(1 ≤ n ≤ 1000)
接下来的n行,每行两个整数st,endd(1 ~ 1e6 且 endd > st)
输出
输出一个整数,表示王炸最多能复习几门功课。
样例输入
231 22 43 421 100100 200
样例输出
22
解析:
贪心算法,按照结束时间从小到大排序,判断下一个的开始时间是否大于等于前一个结束时间,如果是,计数加一;
否则就跳过这个数据继续判断。
程序如下:
#include<cstdio>#include<algorithm>using namespace std;struct stu{int st;int edd;}p[10003];bool cmp(stu a,stu b){return a.edd<b.edd;}int main(){int t;scanf("%d",&t);while(t--){int n,i,j;int ans=1;scanf("%d",&n);for(i=0; i<n; i++) scanf("%d %d",&p[i].st,&p[i].edd);sort(p,p+n,cmp);for(i=0; i<n; i++) { if(p[i].st) for(j=i+1; j<n; j++) { if(p[j].st>=p[i].edd) { ans++; break; } else p[j].st=0; } }printf("%d\n",ans);} return 0;}
阅读全文
0 0
- hpuoj【1216】复习! 复习!【贪心】
- hpu 1216: 复习!复习!
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- 复习
- html2canvas页面截图图片不显示
- 【HDU 1541 Stars 树状数组】
- The Unique MST
- Spark SQL的愿景
- 管道控制循环退出
- hpuoj【1216】复习! 复习!【贪心】
- android操作系统
- 利用redis + lua解决抢红包高并发的问题
- 比尔·盖茨:我想与2017届毕业生分享的人生功课
- How to establish a big data platform ?
- 树链剖分
- Error:Could not find com.android.support:appcompat-v7:25.3.1.
- SpringBoot如何添加拦截器
- linux配置静态路由实现路由转发和quagga实现动态路由实验