“今年暑假不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. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

  2. Java 公平锁与非公平锁学习研究

    最近学习研究了一下Java中关于公平锁与非公平锁的底层实现原理,总结了一下. 首先呢,通过其字面意思,公平与非公平的评判标准就是付出与收获成正比(和社会中的含义差不多一个意思).放到程序中,尤其是 在 ...

  3. VGG19模型训练+读取

    目录 VGG-19模型简单介绍 VGG-19模型文件介绍 分析模型文件 mean值查看 Weight和Bias查看 读取代码 读取模型 训练代码 参考资料 VGG-19的介绍和训练这里不做说明,网上资 ...

  4. Anatomy of a Database System学习笔记 - 公共模块、结语

    公共模块 1. 使用基于上下文的内存分配器进行内存分配 除了教材里常提到的buffer pool,数据库还会为其他任务分配大量内存,例如,Selinger-style查询优化需要动态的规划查询:has ...

  5. kubernetes nginx ingress controller部署

    Kubernetes nginx ingress controller部署 1.下载kubernetes nginx的yaml文件 Wget https://raw.githubusercontent ...

  6. Kafka(1)--kafka基础知识

    Kafka 的简介: Kafka 是一款分布式消息发布和订阅系统,具有高性能.高吞吐量的特点而被广泛应用与大数据传输场景.它是由 LinkedIn 公司开发,使用 Scala 语言编写,之后成为 Ap ...

  7. iOS Simulator version 11 or later is currently not supported.

    iOS Simulator version 11 or later is currently not supported.You can open Xcode > Preferences > ...

  8. Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法

    升级至win10 最新版本18362,远程桌面连接Window Server时报错信息如下: 出现身份验证错误,要求的函数不正确,这可能是由于CredSSP加密Oracle修正. 解决方法: 运行 g ...

  9. Haskell语言学习笔记(93)Data.Text

    Data.Text.Read Prelude> :set -XOverloadedStrings Prelude> :m +Data.Text.Read Prelude Data.Text ...

  10. chrome调试vue.js的插件:vue.js devtools

    1.什么是vue.js devtools? vue.js devtools是chrome的一款插件,用来调试vue的一款神器. 2.为什么下载vue.js devtools? 由于vue是数据驱动的, ...