uva 10020 Minimal coverage(贪心-最小覆盖问题)
2015-02-20 00:12
423 查看
题目大意:给出一个范围M,然后给出若干的区间,以0 0 终止, 要求用最少的区间将0 ~M 覆盖,输出最少个数以及方案。
解题思路:典型的区间覆盖问题,算法竞赛入门经典P154上有讲。
#include <cstdio>
int main() {
int T, arr[100005][2], ans[100005];
scanf("%d", &T);
while (T--) {
int m, n, cnt, cur, s;
scanf("%d", &m);
for (n = 0; scanf("%d%d", &arr
[0], &arr
[1]), arr
[0] || arr
[1]; n++);
for (cur = cnt = 0; cur < m; cnt++, cur = s) {
s = cur;
for (int i = 0; i < n; i++)
if (arr[i][0] <= cur && arr[i][1] > s) {
s = arr[i][1];
ans[cnt] = i;
}
if (s == cur) {
cnt = 0;
break;
}
}
printf("%d\n", cnt);
for (int i = 0; i < cnt; i++)
printf("%d %d\n", arr[ans[i]][0], arr[ans[i]][1]);
printf(T ? "\n" : "");
}
return 0;
}
解题思路:典型的区间覆盖问题,算法竞赛入门经典P154上有讲。
#include <cstdio>
int main() {
int T, arr[100005][2], ans[100005];
scanf("%d", &T);
while (T--) {
int m, n, cnt, cur, s;
scanf("%d", &m);
for (n = 0; scanf("%d%d", &arr
[0], &arr
[1]), arr
[0] || arr
[1]; n++);
for (cur = cnt = 0; cur < m; cnt++, cur = s) {
s = cur;
for (int i = 0; i < n; i++)
if (arr[i][0] <= cur && arr[i][1] > s) {
s = arr[i][1];
ans[cnt] = i;
}
if (s == cur) {
cnt = 0;
break;
}
}
printf("%d\n", cnt);
for (int i = 0; i < cnt; i++)
printf("%d %d\n", arr[ans[i]][0], arr[ans[i]][1]);
printf(T ? "\n" : "");
}
return 0;
}
相关文章推荐
- UVA 10020——Minimal coverage(最小覆盖,贪心问题)
- uva 10020 Minimal coverage(贪心-最小覆盖问题)
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
- UVA 10020 Minimal coverage(最小覆盖问题)
- UVA 10020 Minimal coverage(贪心 + 区间覆盖问题)
- UVA 10020 Minimal coverage 区间覆盖问题 贪心
- UVA 10020 - Minimal coverage (贪心) 区间覆盖问题
- UVA 10382 Watering Grass (贪心 + 区间覆盖问题)
- UVA 1292 - Strategic game(最小顶点覆盖问题,覆盖所有边,自己版本待解)
- uva11134 线性区间覆盖问题(贪心模型+优先队列实现)
- 步步为营(六)贪心(5)最小区间覆盖问题
- UVA - 10020 Minimal coverage(区间覆盖问题)
- UVA10020(最小区间覆盖)
- UVA 10382 Watering Grass(变相的最小覆盖问题)
- 【区间覆盖问题】uva 10020 - Minimal coverage
- UVa 10020 - Minimal coverage(区间覆盖并贪心)
- uva 10020 Minimal coverage 【贪心】+【区间全然覆盖】
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
- UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
- UVa 10020 - Minimal coverage(区间覆盖、贪心)