标签:结束时间 targe 经典贪心 csdn art scan name .net printf
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=2037
很经典的活动安排问题变形, 与算法教材的活动安排一样,依据结束时间进行排序,然后相容的累加就可以。
// 经典贪心问题 活动时间安排的简单变形 // 按活动结束时间,递增排序, 结束时间早的。优先选择 #include <bits/stdc++.h> using namespace std; typedef struct active { int st; int ed; bool operator < (const struct active &at) const { return this->ed < at.ed; } }Active; const int MAX = 100+5; Active arr[MAX]; int main(void) { //freopen("in.txt", "r", stdin); int n = 0; while(cin>>n && n != 0) { for(int i=0; i<n; ++i) scanf("%d%d", &arr[i].st, &arr[i].ed); sort(arr, arr+n); //cout<<arr[0].ed<<endl; int cnt = 1; int j = 0; for(int i=1; i<n; ++i) { // 假设没有冲突 if (arr[i].st >= arr[j].ed) { j = i; cnt++; } } printf("%d\n", cnt); } return 0; }
标签:结束时间 targe 经典贪心 csdn art scan name .net printf
原文地址:http://www.cnblogs.com/lytwajue/p/7079968.html