pzhu 1082: 活动安排问题 (贪心)
来源:互联网 发布:安卓用的java模拟器 编辑:程序博客网 时间:2024/05/16 09:10
1082: 活动安排问题
Description
我们都知道经典的活动安排问题是这样描述的:设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi。如果选择了活动 i,则它在闭时间区间[si, fi]内占用资源。要求选择的活动时间上不能重叠,即上一个活动的结束时间不能和下一个活动的开始时间重叠(相等)。
Input
第一行输入活动数目 n
第二行输入每个活动的起始时间 si
第三行输入每个活动的结束时间 fi
(为了简单起见,以上输入的所有数据均大于等于1且不超过100)
Output
最多能选择的活动数目
Sample Input
3
1 5 9
2 6 10
3
1 2 4
3 5 7
1 5 9
2 6 10
3
1 2 4
3 5 7
Sample Output
3
2
2
分析:贪心求解,对于结构体{a,b},按照bi从小到大排序,然后扫一遍就行了。
AC代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100+10;struct node{int a,b;}nt[maxn];bool cmp(const node& n1,const node& n2){return n1.b<n2.b;}int main(){int n;while(scanf("%d",&n)==1){for(int i=0;i<n;i++)scanf("%d",&nt[i].a);for(int j=0;j<n;j++)scanf("%d",&nt[j].b);sort(nt,nt+n,cmp);int ans=1;int end=nt[0].b;for(int i=1;i<n;i++){if(nt[i].a>end){ans++;end=nt[i].b;}}printf("%d\n",ans); }return 0;}
0 0
- pzhu 1082: 活动安排问题 (贪心)
- 活动安排问题 (贪心)
- 【贪心】活动安排问题
- 贪心-活动安排问题
- 活动安排问题 贪心
- 活动安排问题(贪心算法)
- 活动安排问题(贪心算法)
- 活动安排问题(贪心算法)
- 活动安排问题(贪心版)
- 51nod 活动安排问题 (贪心)
- 51Nod 活动安排问题(贪心)
- 线段重叠(活动安排)问题 贪心
- 活动安排(贪心)
- 活动安排问题 贪心算法
- 活动安排问题(贪心算法)
- 活动安排问题--贪心算法
- 活动安排问题(贪心算法)
- 活动安排问题 贪心算法
- CodeForces 801A Vicious Keyboard 模拟
- 常用代码整理
- Dynamic Time Warping 动态时间规整算法
- JMeter学习笔记13-如何从命令行运行JMeter
- 机器学习解决问题的框架
- pzhu 1082: 活动安排问题 (贪心)
- 数字图像处理
- Appium
- MySQL5.7.10免安装版配置
- 阶乘计算升级版
- Itween笔记(第二节)
- 菲波拉契数列Fibonacci递归和非递归
- 第十届 吉林省赛 E
- Android HandlerThread 总结使用