NYOJ14——贪心
来源:互联网 发布:蓝卡巡更软件 编辑:程序博客网 时间:2024/06/18 07:34
1.题目描述:
会场安排问题
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
- 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。
- 输入
- 第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei) - 输出
- 对于每一组输入,输出最多能够安排的活动数量。
每组的输出占一行 - 样例输入
221 1010 1131 1010 1111 20
- 样例输出
12
- 提示
- 注意:如果上一个活动在t时间结束,下一个活动最早应该在t+1时间开始
思路:
本题中,我们这么来考虑,我们想要运行的内容的个数最多,应该让上一次我们选择的活动最早结束,以此类推,对我们每次都寻找结束时间最早的那个活动,从而,确定我们的贪心的策略是查找结束时间最早的复合要求的活动进行选择
3.AC代码:
#include"iostream"#include"cstdio"#include"cstdlib"#include"cstring"#define N 50005using namespace std;typedef struct node{int b;int e;}point;int n,m;point timep[N];int sum;void quicksort(int left,int right){if(left>=right) return ;else{int i=left;int j=right;point temp=timep[left];while(i!=j){while(i<j&&timep[j].e>=temp.e) j--;while(i<j&&timep[i].e<=temp.e) i++;if(i!=j){point t=timep[i];timep[i]=timep[j];timep[j]=t;}}timep[left]=timep[i];timep[i]=temp;quicksort(left,i-1);quicksort(i+1,right);return ;}}int main(){scanf("%d",&n);while(n--){scanf("%d",&m);for(int i=1;i<=m;i++) scanf("%d%d",&timep[i].b,&timep[i].e);quicksort(1,m);int j=1;sum=1;for(int i=2;i<=m;i++){if(timep[i].b>timep[j].e){sum++;j=i;}}printf("%d\n",sum);} return 0;}
0 0
- NYOJ14——贪心
- NYOJ14——会场安排(贪心算法)
- 贪心算法之——会场安排(nyoj14)
- 会场安排问题—NYOJ14
- nyoj14会场安排问题【贪心】~
- nyoj14
- nyoj14
- nyoj12+nyoj14+nyoj236贪心区间三部曲
- (贪心法的例题)nyoj14题 会场安排问题
- nyoj14会场安排问题VS hdoj2037今年暑假不AC(贪心之时间安排问题)
- NYOJ14 会场安排问题
- 会场安排(nyoj14)
- nyoj14会场安排问题
- nyoj14会场安排问题
- nyoj14会场安排问题
- NYOJ14.会场安排
- nyoj14会场安排问题
- nyoj14 会场安排问题
- UITableView优化技巧5
- generate Parentheses----leetcode
- oracle 11g SQL profile惹的祸
- 【三星官方教程】如何为Gear VR开发应用(四):场景连接
- C语言课设--电影院售票
- NYOJ14——贪心
- 将SQLite中的数据转换为Excel表
- 防止手机短信诈骗你能轻松应对吗
- MongoDB查询语句理解
- 基于Linux与Busybox的Reboot命令流程分析
- hdu5481Desiderium+区间覆盖次数
- Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决
- linux (%和%%)(#和##)贪婪匹配规则
- scanner 循环输入+错误继续(catch 后 continue)