【杭电】[2037]今年暑假不AC
2015-12-21 19:10
381 查看
贪心算法
(虽然现在也不是很明白什么是贪心算法)
难点也就是对节目结束时间的排序
需要自己饶一饶
第一次写的时候还没学结构体
所以用数组写的比较长
[code]#include<stdio.h> int main() { int n,i,j,k,t; while(scanf("%d",&n),n!=0) { int re=1,result=1; int Ti_s[100],Ti_e[100]; Ti_s[0]=Ti_e[0]=0; for(i=0; i<n; i++) { scanf("%d %d",&Ti_s[i],&Ti_e[i]); for(k=0; k<i; k++) { if(Ti_e[i]<Ti_e[k]) { t=Ti_e[k]; Ti_e[k]=Ti_e[i]; Ti_e[i]=t; t=Ti_s[k]; Ti_s[k]=Ti_s[i]; Ti_s[i]=t; } } } // for(i=0; i<n; i++) { // for(k=i+1,j=i; k<n; k++) { // if(Ti_e[j]<=Ti_s[k]) { // j=k; // re++; // } // } // if(re>result) // result=re; // if(i==0) // result=re; // re=1; // } for(k=1,j=0; k<n; k++) { if(Ti_e[j]<=Ti_s[k]) { j=k; re++; } } printf("%d\n",re); } return 0; }
下面的是结构体的
但也是没有用sort
[code]#include<stdio.h> struct tv { int Ti_s; int Ti_e; }; int main() { int i,k; int n,result; while(scanf("%d",&n),n!=0) { result=1; struct tv b ,t; b[0].Ti_s=b[0].Ti_e=0; for(i=1; i<=n; i++) scanf("%d %d",&b[i].Ti_s,&b[i].Ti_e); for(i=1; i<=n; i++) { for(k=1; k<=n-i+1; k++) { if(b[k].Ti_e<b[k-1].Ti_e) { t=b[k]; b[k]=b[k-1]; b[k-1]=t; } } } for(i=2,t=b[1]; i<=n; i++) { if(b[i].Ti_s>=t.Ti_e) { result++; t=b[i]; } } printf("%d\n",result); } return 0; }
值得做的一题
题目地址:【杭电】[2037]今年暑假不AC接内容
在附一个优秀的讲解博文:
HDU2037 今年暑假不AC 贪心算法
相关文章推荐
- UML之时序图详解
- online_judge_1135
- (转载)实现QQ侧滑边栏
- 151221 HAoi2015 总结
- python 网络爬虫(一):世界上最简单的Web浏览器
- JAVA同步容器使用心得
- 数据库字段顺序的【坑】
- 读书笔记--Intent
- 有限状态机FSM
- 主键ID、时间转化工具类
- 图片加载与缓存利器(自动缓存)--第三方开源-- Glide
- C语言 - printf的占位符(%) 异常
- 内存申请malloc可能引发的问题
- ComboBox 强制转换为大写的方法
- 密码存储相关总结
- Linux下Tomcat重新启动
- easyui中ajax笔记
- POJ3176 DP水题
- cin>>i的返回值的问题 & cin输入流
- Cocos2d-x Layout简单使用