HDU2037 今年暑假不AC
来源:互联网 发布:spring 获取端口号 编辑:程序博客网 时间:2024/05/17 07:58
问题链接:HDU2037 今年暑假不AC。
问题简述:参见上述链接。
问题分析:典型的贪心算法题,分别用C语言和C++语言编写程序。
若干个电视节目,自然要按时间顺序来看。为了看更多的节目,需要尽快看完一个节目再看另外一个节目,多看短节目才能看更多的节目。
程序说明:C语言程序与C++语言程序的差别,只在排序方面,调用的函数与参数不同。
AC的C语言程序如下:
/* HDU2037 今年暑假不AC */#include <stdio.h>#include <stdlib.h>#define MAXN 100struct node { int start; int end;} record[MAXN];int cmp(const void * a, const void * b){ struct node *x = (struct node *) a; struct node *y = (struct node *) b; return x->end - y->end;}int main(void){ int n, count, lastend, i; while(scanf("%d", &n) != EOF) { // 判定结束条件 if(n == 0) break; // 读入原始数据 for(i=0; i<n; i++) scanf("%d%d", &record[i].start, &record[i].end); // 排序:按结束时间排序 qsort(record, n, sizeof(record[0]), cmp); // 贪心法处理:后一个起始时间必须大于或等于前一个终止时间 count = 0; lastend = -1; for(i=0; i<n; i++) { if(record[i].start >= lastend) { count++; lastend = record[i].end; } } // 输出结果 printf("%d\n", count); } return 0;}
AC的C++语言程序如下:
/* HDU2037 今年暑假不AC */#include <iostream>#include <algorithm>using namespace std;#define MAXN 100struct node { int start; int end;} record[MAXN];bool cmp(const node& a, const node& b){ return a.end < b.end;}int main(){ int n, count, lastend, i; for(;;) { // 读入n cin >> n; // 判定结束条件 if(n == 0) break; // 读入原始数据 for(i=0; i<n; i++) cin >> record[i].start >> record[i].end; // 排序:按结束时间排序 sort(record, record + n, cmp); // 贪心法处理:后一个起始时间必须大于或等于前一个终止时间 count = 0; lastend = -1; for(i=0; i<n; i++) { if(record[i].start >= lastend) { count++; lastend = record[i].end; } } // 输出结果 cout << count << endl; } return 0;}
1 0
- HDU2037:今年暑假不AC
- hdu2037 今年暑假不AC
- HDU2037:今年暑假不AC
- hdu2037 今年暑假不ac
- hdu2037 今年暑假不AC
- hdu2037 今年暑假不AC
- hdu2037今年暑假不AC
- HDU2037 今年暑假不AC
- HDU2037 今年暑假不AC
- hdu2037 今年暑假不AC
- 今年暑假不AC--hdu2037
- HDU2037今年暑假不AC
- hdu2037今年暑假不AC
- HDU2037今年暑假不AC
- hdu2037 今年暑假不AC
- hdu2037今年暑假不AC
- HDU2037 今年暑假不AC
- HDU2037今年暑假不AC
- 使用了未经检查或不安全的操作……
- 如家小例子
- 硬件开发过程简介(一)
- JavaSwingのJTable实例
- 3d魔方
- HDU2037 今年暑假不AC
- Unity3d 程序架构学习笔记
- 获取窗口宽度DisplayMetrics 类
- Eclipse颜色主题插件:Eclipse Color Theme
- 大学总结
- 读写锁样例
- JAVA函数调用的动态绑定
- BeanShell PreProcessor使用
- 日志管理框架:Log4j工具封装类