杭电OJ2037
2016-11-09 21:48
260 查看
#include <iostream> #include <vector> using namespace std; /* *贪心算法:想要在一天内看尽可能多的节目,寻找最优贪心策略 *1.如果我们每次都选择开始时间最早的活动,不能得到最优解; *2.如果我们每次都选择持续时间最短的活动,不能得到最优解; *3.可以用数学归纳法证明,我们的贪心策略应该是每次选择结束时间最短的活动(按这种方法选择活动可以给未安排活动留下尽可能多的时间) */ struct pro{ int pstart; int pend; }; int main(){ int n; pro temp; vector<pro> p; int now;//用now记录当前安排时间 int count; while(cin >> n){ p.clear(); now = 0; count = 0; if(n == 0){ break; } else{ for(int i = 0; i < n; i++){ cin >> temp.pstart; cin >> temp.pend; p.push_back(temp); } //将各节目按结束时间从早到晚进行排序 for(int i = n - 1; i >= 0; i--){ for(int j = 0; j < i; j++){ if(p[j].pend >= p[j+1].pend){ swap(p[j], p[j+1]);//vector中的swap()函数 } } } for(int i = 0; i < n; i++){ if(now <= p[i].pstart){//当前时间小于等于该节目的开始时间就可以 now = p[i].pend;//修改当前时间为该节目的结束时间 count++; } } cout << count << endl; } } return 0; }
相关文章推荐
- 【杭电oj】2037今年暑假不AC(贪心算法)
- 杭电OJ(HDOJ)2037题:今年暑假不AC(贪心算法+排序)
- 杭电oj 2037 今年暑假不AC
- 杭电OJ--2037 今年暑假不AC
- 杭电oj 2037 今年暑假不AC
- HDU-OJ 杭电2037 今年暑假不AC——Pair写法
- 【杭电OJ】2037-今年暑假不AC(经典贪心)
- 【杭电-oj】-2037-今年暑假不AC(贪心,sort,结构体)
- 贪心算法-杭电oj2037
- 杭电OJ2037 今年暑假不AC
- 【杭电-oj】-5650-so easy(所有子集异或)
- 杭电OJ 1058
- 杭电OJ 1248 完全背包问题 及反思
- 杭电OJ A+B for Input-Output Practice (V)
- 【杭电oj】2058 - The sum problem(高斯公式)
- 杭电oj2010水
- 杭电 oj 1002 A + B Problem II 记录
- 杭电oj(java版)——1094
- 杭电OJ1005-斐波拉契相关Number Sequence
- 杭电oj(Java版)——1720 A+B Coming