51nod 活动安排问题 《贪心+dp》
2016-06-25 18:33
190 查看
1428 活动安排问题
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?
Input
Output
Input示例
Output示例
如果现有的教室不够用,就增加一个教室。。
代码:
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?
Input
第一行一个正整数n (n <= 10000)代表活动的个数。 第二行到第(n + 1)行包含n个开始时间和结束时间。 开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000
Output
一行包含一个整数表示最少教室的个数。
Input示例
3 1 2 3 4 2 9
Output示例
2
如果现有的教室不够用,就增加一个教室。。
代码:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node{ int kai,jie; }ge[10010]; bool cmp(node xx,node yy) { return xx.kai<yy.kai; } int main() { int n; int dp[10010]={0}; scanf("%d",&n); for (int i=0;i<n;i++) scanf("%d%d",&ge[i].kai,&ge[i].jie); sort(ge,ge+n,cmp); int i,j,sum=0,kp=0; for (i=0;i<n;i++) { for (j=0;j<kp;j++) { if (ge[dp[j]].jie<=ge[i].kai) { dp[j]=i; break; } } if (j==kp) dp[kp++]=i; } printf("%d\n",kp); return 0; }
相关文章推荐
- Hadoop 序列化
- java实现整数选择排序
- springMVC浏览器接受json报406错误的解决方法
- Android自定义ProgressBar
- tasklist命令参数应用详细图解
- 运用XUtils获取网络资源结合QQ第三方登陆分享、微信精选
- 文本挖掘的特征选择算法
- 《AngularJS》-----手机页面滚动条滑动到底端实现加载更多
- 什么是容器
- emWin实现BMP位图皮肤之Spinbox篇
- hadoop HDFS
- python实现超市扫码仪计费
- 服务启动报错--未注入
- ionic 底部把内容挡住
- 反射机制----写的好
- 双色球、大乐透彩票注数算法
- GNU 工具与库
- 浅谈深度学习中潜藏的稀疏表达
- Hadoop YARN
- 安卓与51单片机的蓝牙通信(安卓端)