sdut.acm活动选择问题
来源:互联网 发布:淘宝店怎么加入淘客 编辑:程序博客网 时间:2024/06/08 00:24
解析:
本题采用贪心策略。
用begin[] end[]分别表示活动的开始时刻和结束时刻。每一个事件的开始时刻一定小于结束时刻。即begin[i] < end[i].
例如三个事件a.b.c(a < b < c),即有begin[a] < end[a] <=begin[b] < end[b]<=begin[c] < end[c]。
具体讲:
1 。第一要选取的事件是最早结束的事件。
2。下一个要选取的事件,必须是上一个事件结束后开始事件中最早结束的事件。
#include <stdio.h>int main(){ int num; while(scanf("%d",&num) != EOF) { int begin[1000],end[1000],sum = 0,i,j,temp1,temp2; int timestar = 0; for(i = 0;i < num;i++) { scanf("%d %d",&begin[i],&end[i]); } for(i = 0;i < num-1;i++) for(j = 0;j < num-1-i;j++) { if(end[j] > end[j+1]) { temp1 = begin[j]; begin[j] = begin[j+1]; begin[j+1] = temp1; temp2 = end[j]; end[j] = end[j+1]; end[j+1] = temp2; } }/* 采用冒泡排列法将时间按照 时间结束的顺序从大到下排列 */ i = 0; while(i < num) { if(begin[i] >= timestar)/*比较结束事件的时间与下 一个开始时间是否符合条件*/ { timestar = end[i]; sum += 1; i++; }else { i++; } } printf("%d\n",sum); }}
- sdut.acm活动选择问题
- sdut 活动选择问题
- SDUT 2073----活动选择问题
- 活动选择问题 (sdut oj)
- sdut 2073 活动选择问题
- SDUT 贪心 活动选择问题
- 贪心法 2073--> 活动选择问题 SDUT
- [SDUT](2073)活动选择问题 ---贪心
- 【sdut】 [1298] 活动选择
- SDUT 活动选择 1298
- SDUT 1298 活动选择
- 活动选择 (sdut oj)
- SDUT 贪心法 活动选择
- sdut.acm区间覆盖问题
- sdut acm 区间覆盖问题
- 活动选择问题
- 活动选择问题
- 活动选择问题
- Android 数据存储之 Shared Preferences
- Leveldb源码分析--17
- java设计模式之抽象工厂模式
- Wuawua知识管理 -- C#推荐书籍
- gcc的 -L -I -l -rpath -rpath-link
- sdut.acm活动选择问题
- static
- Linux下动态库使用小结
- 扩展实现PHP Benchmark
- SQL*PLUS命令的使用大全
- UvaLive-5713-Qin Shi Huang's National Road System
- jstl之forEach循环
- hdu 1059 dp
- jvm的体系结构