HDOJ 2037 今年暑假不AC(贪心)
2015-07-22 21:04
507 查看
今年暑假不AC
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 35083 Accepted Submission(s): 18702
[align=left]Problem Description[/align]
“今年暑假不AC?”
“是的。”
“那你干什么呢?”
“看世界杯呀,笨蛋!”
“@#$%^&*%...”
确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)
[align=left]Input[/align]
输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。
[align=left]Output[/align]
对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。
[align=left]Sample Input[/align]
12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0
[align=left]Sample Output[/align]
5
[align=left]Author[/align]
lcy
[align=left]Source[/align]
ACM程序设计期末考试(2006/06/07)
[align=left]Recommend[/align]
lcy
思路:对结束时间升序排序,比较前一结束时间和后一开始时间,切记计数器sum初始为1.
用快排做:
#include<stdio.h> #include<stdlib.h> #include<string.h> struct time{ int star,end; }ti[101]; int cmp(const void *a,const void *b){ return (*(time *)a).end-(*(time *)b).end; }//升序 int main(){ int n,i,k,sum,temp,j; while(scanf("%d",&n)&&n!=0){ for(i=0;i<n;i++){ scanf("%d%d",&ti[i].star,&ti[i].end); } qsort(ti,n,sizeof(ti[0]),cmp); k=0; sum=1; for(i=1;i<n;i++){ if(ti[i].star>=ti[k].end){ sum++; k=i; } } printf("%d\n",sum); memset(ti,0,sizeof(ti));//初始化!!! } return 0; }
用选择排序(结构体里的数据要一起排咩):
#include<stdio.h> #include<stdlib.h> #include<string.h> struct time{ int star,end; }ti[101]; int main(){ int n,i,k,sum,temp,j; while(scanf("%d",&n)&&n!=0){ for(i=0;i<n;i++){ scanf("%d%d",&ti[i].star,&ti[i].end); } for(i=0;i<n;i++){ k=i; for(j=i;j<n;j++){ if(ti[j].end<ti[k].end){ temp=ti[j].end; ti[j].end=ti[k].end; ti[k].end=temp; temp=ti[j].star; ti[j].star=ti[k].star; ti[k].star=temp; } }//排序 } k=0; sum=1; for(i=1;i<n;i++){ if(ti[i].star>=ti[k].end){ sum++; k=i; } } printf("%d\n",sum); memset(ti,0,sizeof(ti));//初始化!!! } return 0; }
相关文章推荐
- poj 3255 次短路算法(好)
- 1056. Mice and Rice (25)
- autotools 生成的makefile 常用 目标
- KMP字符串模式匹配详解
- Windows 7下,一块硬盘突然掉盘时的windows操作系统日志
- 使用百度地图API进行坐标系转换
- 平衡的括号
- eclipse php 开发环境搭建记录
- Android入门:短信和拨打电话
- 学习的过程
- hdu 1233 还是畅通工程(kruskal求最小生成树)
- php filesize函数是个坑。。。
- 直接插入排序、折半插入排序、Shell排序、冒泡排序,选择排序
- 你的背景,是这个时代 张璁
- PAT (Basic Level) Practise (中文)1028. 人口普查(20)C语言
- MATLAB 图像处理函数(第六章)(获取图像矩形像素的运用)
- 杭电 1234 开门人与关门人
- Longest Substring Without Repeating Characters
- ***********ListView中Item处理点击Item进入另一页面***********
- RHEL一(管理文件、通配符、特殊符号)