“今年暑假不AC?” 
“是的。” 
“那你干什么呢?” 
“看世界杯呀,笨蛋!” 
“@#$%^&*%...” 
确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。 
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目) 

Input

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。

Output

对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。Sample

Input

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

Sample Output

5

// don't know why
 #include<stdio.h>

 struct Timetable
{ int s; int e; }; int main()
{
int n, c;
struct Timetable t[], temp;
while(scanf("%d", &n), n)
{
for(int i=;i<n;i++)
scanf("%d %d", &t[i].s, &t[i].e);
// 按节目结束时间从小到大排序
for(int gap=n/; gap>; gap/=)
for(int i=gap; i<n; i++)
for(int j=i;j-gap>=&&t[j].e<t[j-gap].e;j-=gap)
{ temp=t[j-gap]; t[j-gap]=t[j]; t[j]=temp; }
/*
printf("\n");
for(int i=0;i<n;i++)
printf("%d %d %d\n", t[i].s, t[i].e, i);
printf("\n");
*/
// 将开始时间不符合从小到大的顺序的节目删除
for(int i=;i<n-;i++)
for(int j=i+;j<n;j++)
if(t[i].s>t[j].s)
t[j].e=;
/*
for(int i=0;i<n;i++)
if(t[i].e)
printf("%d %d %d\n", t[i].s, t[i].e, i);
printf("\n");
*/
// 统计能完整看到的电视节目的个数
c=;
for(int i=;i<n-;)
if(t[i].e)
{
c++;
// printf("%d %d %d\n", t[i].s, t[i].e, i); //
int flag=;
for(int j=i+;j<n;j++)
if(t[i].e&&t[j].s>=t[i].e)
{ i=j; flag=; break; }
if(flag) break;
}
printf("%d\n", c);
}
return ;
}

WA

// 贪心算法(详见紫书8.4.2)
 #include<stdio.h>

 struct Timetable
{ int s; int e; }; int main()
{
int n, c;
struct Timetable t[], temp;
while(scanf("%d", &n), n)
{
for(int i=;i<n;i++)
scanf("%d %d", &t[i].s, &t[i].e);
// 按节目结束时间从小到大排序
for(int gap=n/; gap>; gap/=)
for(int i=gap; i<n; i++)
for(int j=i;j-gap>=&&t[j].e<t[j-gap].e;j-=gap)
{ temp=t[j-gap]; t[j-gap]=t[j]; t[j]=temp; }
/*
printf("\n");
for(int i=0;i<n;i++)
printf("%d %d %d\n", t[i].s, t[i].e, i);
printf("\n");
*/
// 将开始时间不符合从小到大的顺序的节目删除
for(int i=;i<n-;i++)
for(int j=i+;j<n;j++)
if(t[i].s>t[j].s)
t[j].e=;
/*
for(int i=0;i<n;i++)
if(t[i].e)
printf("%d %d %d\n", t[i].s, t[i].e, i);
printf("\n");
*/
// 统计能完整看到的电视节目的个数
c=;
for(int i=;i<n;)
if(t[i].e)
{
c++;
// printf("%d %d %d\n", t[i].s, t[i].e, i); //
int flag=;
for(int j=i+;j<n;j++)
if(t[i].e&&t[j].s>=t[i].e)
{ i=j; flag=; break; }
if(flag) break;
}
printf("%d\n", c);
}
return ;
}

AC

7B - 今年暑假不AC的更多相关文章

  1. 今年暑假不AC

    "今年暑假不AC?""是的.""那你干什么呢?""看世界杯呀,笨蛋!""@#$%^&*%...&quo ...

  2. hdu 2037 今年暑假不AC

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. 今年暑假不AC[HDU2037]

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  4. E - 今年暑假不AC

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Des ...

  5. 题目1434:今年暑假不AC (项目安排类:结束时间快排,判断开始时间)

    题目描述: “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视作为 ...

  6. hdu 2037 今年暑假不AC (java)

    问题: 此题为贪心算法入门,思路是先将各个时间段依照结束时间进行排序(按结束越早遍历.节目愈多), 再从第一个节目開始,假设下一节目開始时间大于上一节目的開始时间则进行该节目.依次递推. 输入时,要求 ...

  7. HDU 2037 今年暑假不AC (贪心)

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. hdoj 2037 今年暑假不AC

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. 暑假集训(2)第七弹 -----今年暑假不AC(hdu2037)

    J - 今年暑假不AC Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64 ...

随机推荐

  1. 三、Python-列表

    一.序列:是一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值 索引:从左到右的索引从0开始依次增加的正整数:从右到左的索引为-1开始的复数 切片(分片):一中获取序列中的元素的方 ...

  2. 在云主机上基于nginx部署基于Flask的网站服务器 (自己部署 )

    1.申请云主机 a.阿里云 (注意:阿里云的服务器需要手动添加安全规则使能80端口) b.腾讯云 2.把网站服务器程序拷贝到云主机 3.远程登录云主机 4.解压网站服务器程序 yum install ...

  3. orcal - 分组

    执行顺序 from where group by having select order by 多表查询与分组查询的时候,查询结果相当于是一张临时表,所有的分组是在临时表操作 分组统计查询 COUNT ...

  4. R语言输出高质量图片

    Rstudio画图之后保存的 图片格式如下 上面的几种格式可以直接插入word文档中,但是图片质量很低,锯齿感很明显.若生成PDF,为矢量图(不懂),但是不可以插入word文档中. 最简便的方法就是对 ...

  5. Xilinx Zynq ZC-702 开发(01)—— 概览

    1.资料获取:https://github.com/Xilinx(开发所需资源,包括:交叉编译工具,linux kernel 源码,u-boot 源码, device-tree 源码,  qemu,  ...

  6. Windows下nginx下安装amqp

    1.复制php_amqp.dll 到php/ext/ 2.复制rabbitmq.4.dll 到php/3.复制rabbitmq.4.dll 到windows/system32/ (如32位) ,64位 ...

  7. linux 之网络命令

    write 给用户发消息,用户必须在线,以ctrl+d保存结束 语法: write 用户 wall发广播信息(write all)  语法:wall 信息 mail 查看发送电子邮件 发送语法 : m ...

  8. salt Rosters

    salt除了支持Master 和Minion方式之外,还支持SSH; SSH方式因为没有minion主动连接master,所以需要维护 roster,提供master可以操作的对象;roster的配置 ...

  9. NE76003单片机调试DS18B20 步骤

    一.硬件部分 GND脚接地: DQ脚接P03,外加4K7上拉电阻: VCC脚接3.3v供电: 二.软件部分 1.配置P03为准准双向 IO类型: void Init_power_gpio(void){ ...

  10. VS code自定义用户代码片段snippet

    打开VS code,“文件-首选项-用户代码片段-选择新建全局代码片段文件 “ 属性介绍:prefix   就是你自定义的快捷键 body    就是你自定义的代码片段 description 就是这 ...