区间贪心及区间选点问题
2017-02-27 13:06
218 查看
#include<cstdio> #include<algorithm> using namespace std; const int maxn = 110; struct Inteval { int x, y;//开区间左右端点 }I[maxn]; bool cmp(Inteval a, Inteval b) { if (a.x != b.x)return a.x > b.x;//先按左端点从大到小排序 else return a.y < b.y;//左端点相同的按右端点从小到大排序 } int main() { int n; while (scanf("%d", &n) != 0) { for (int i = 0; i < n; i++) { scanf("%d%d", &I[i].x, &I[i].y); } sort(I, I + n, cmp);//把区间排序 //ans记录不相交区间个数,lastX记录上一个被选中区间的左端点 int ans = 1, lastX = I[0].x; for (int i = 1; i < n; i++) { if (I[i].y <= lastX)//如果该区间右端点在lastX左边 {//区间选点问题只需将上面的"<="改成"="即可 lastX = I[i].x;//以I[i]作为新选中的区间 ans++;//不相交区间个数加1 } } printf("%d\n", ans); } return 0; } /* 输入为: 4 1 3 2 4 3 5 6 7 输出为: 3 */
相关文章推荐
- NYOJ891 找点(贪心区间选点问题)
- poj 1328 Radar Installation 【贪心】【区间选点问题】
- UVA 10148 Advertisement (贪心 + 区间选点问题)
- POJ 1328 && NYOJ 891 - 贪心 区间选点问题
- POJ 1328 Radar Installation(贪心+区间选点问题)
- [ACM] POJ 1328 Radar Installation (贪心,区间选点问题)
- 小白书贪心之区间选点问题
- 贪心法——区间选点问题
- POJ1328 Radar Installation (区间选点问题,贪心)
- Uva 11134 问题分解,贪心策略区间选点问题
- 10148 - Advertisement-----贪心,区间选点问题------水题
- 步步为营(四)贪心(3)区间选点问题
- nyoj 891 找点(贪心,区间选点问题)
- UVA 10148 Advertisement (贪心 + 区间选点问题)
- 区间选点问题(贪心)
- 区间选点问题(贪心)
- POJ1328 区间选点问题(贪心)
- NYOJ Radar 贪心之区间选点问题
- 贪心--区间选点问题
- UVa 1615 Highway (贪心,区间选点问题)