USACO 2014 JAN 滑雪录像
2. 滑雪录像{silver题3}
【问题描述】
冬奥会的电视时刻表包含N (1 <= N <= 150)个节目,每个节目都有开始和结束时间。农民约翰有两台录像机,请计算他最多可以录制多少个节目。
【文件输入】
第一行,一个整数N。
接下来N行每行两个整数,表示一个节目的开始和结束时间,范围为0..1,000,000,000。
【文件输出】
一个整数,表示最多可以录制的节目数量。
【输入样例】
6
0 3
6 7
3 10
1 5
2 8
1 9
【输出样例】
4
【样例说明】
第1台录制节目1和3,第2台录制节目2和4。
首先感谢 宝宝的思路分享~
思路:
贪心,因为是两个相机,所以如果用动归的话,就会出现重复使用,方大神动归只有70,因为特判比较复杂,本渣就放弃了。
开始写了暴搜,可是同样因为重叠的原因,只有10分,所以还是贪心。
贪心的思路就是,首先按照结束时间b[i]进行排序,(为什么不用开始时间呢,因为如果按照开始时间排序,会出现开始时间很小,但是时间段很长的情况,这样的话,就会影响最优)。 然后设两个变量来记录两个相机当前节目的结束时间,然后从1到n个节目进行比较,可加入就加入。
PS:当两个相机都可以加入的时候,应选取结束时间靠后的相机加入。原因:因为是按照结束时间排序,有可能会出现后来的节目开始时间比此节目靠前,此时可将其加入到之前结束时间靠前的相机中。
举例说明:
|------| 结尾时间4
|----------| 结尾时间6
比如上面为两个相机已加入的时间段, 现在再加入一条开始时间为9的,则应加入到第二个,因为如果下一个节目开始时间为5,则又可以加入到第一个,若将9的加入到第一个, 则5的就无法加入,就无法最优。
program recording;
var i,j,k,n,m,x,y:longint;
a,b:array[..] of longint; procedure data1;
var i,j:longint;
begin
assign(input,'recording.in');
assign(output,'recording.out');
reset(input);
rewrite(output);
end; procedure data2;
begin
close(input);
close(output);
end; procedure sort(l,r: longint);
var
i,j,x,y: longint;
begin
i:=l;
j:=r;
x:=b[(l+r) div ];
repeat
while b[i]
inc(i);
while x
dec(j);
if not(i>j) then
begin
y:=b[i];
b[i]:=b[j];
b[j]:=y;
y:=a[i];
a[i]:=a[j];
a[j]:=y;
inc(i);
j:=j-;
end;
until i>j;
if l
sort(l,j);
if i
sort(i,r);
end; procedure datain;
var i,j,x,y,ans:longint;
begin
readln(n);
for i:= to n do
readln(a[i],b[i]);
sort(,n);
x:=;y:=;ans:=;
for i:= to n do
begin
if (a[i]>=x) and (a[i]>=y) then
if x>y then begin inc(ans);x:=b[i]; continue; end
else begin inc(ans);y:=b[i]; continue; end;
if a[i]>=x then begin inc(ans);x:=b[i]; end;
if a[i]>=y then begin inc(ans);y:=b[i]; end;
end;
writeln(ans);
end; begin
data1;
datain;
data2;
end.
USACO 2014 JAN 滑雪录像的更多相关文章
- USACO翻译:USACO 2014 JAN三题(2)
USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...
- USACO翻译:USACO 2014 JAN三题(1)
USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...
- USACO翻译:USACO 2014 DEC Silver三题
USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...
- USACO翻译:USACO 2012 JAN三题(2)
USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...
- USACO翻译:USACO 2012 JAN三题(1)
USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...
- USACO翻译:USACO 2013 JAN三题(1)
USACO 2013 JAN 一.题目概览 中文题目名称 镜子 栅栏油漆 奶牛排队 英文题目名称 mirrors paint lineup 可执行文件名 mirrors paint lineup 输入 ...
- USACO翻译:USACO 2014 FEB SILVER 三题
USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...
- USACO翻译:USACO 2014 MARCH Silver三题
USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...
- USACO翻译:USACO 2014 US Open 三题
USACO 2014 US Open 一.题目概览 中文题目名称 牧场装饰 里程表 牛像展览 英文题目名称 decorate odometer fairphoto 可执行文件名 decorate od ...
随机推荐
- C 语言
1, // char server[] = BaseNetServerIp; // string serverStr = _aliNetServerEnabled?Ne ...
- ie不兼容的几个js问题及解决办法
1.table问题 在动态新增tr或者td时,createElement()一般用appendChild();都不生效,解决办法是用新增tbody,如 var table=document.creat ...
- JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点
今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用 jQuery的话 是不是对象.focus()就可以了, Jav ...
- css3 三角形
https://jsbin.com/gexezo/edit?html,css,output https://jsbin.com/gexezo
- hihoCoder 1427 : What a Simple Research(大㵘研究)
hihoCoder #1427 : What a Simple Research(大㵘研究) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 ...
- Hello 2017!
- react1
1.方法用() 里面的每个参数之间用,分隔2.对象(函数.数组)用{} 3.{/*注释...*/} 4 组件的生命周期可分成三个状态:Mounting:已插入真实 DOMUpdating:正在被重新 ...
- MyISAM与InnoDB区别
两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用. 我作为使用MySQL的用户角度出发,Innodb和My ...
- ExtJS获取父子、兄弟容器元素方法
http://www.cnblogs.com/CoolHu/archive/2012/12/08/2808433.html 1.当前对象的父对象(上级对象) this.ownerCt: 2.当前对象的 ...
- 在iframe父界面获取iframe里面的标签
上一篇里边介绍了在里边利用iframe引入另一个html导航文件,有兴趣的朋友可以看一看 http://www.cnblogs.com/simba-lkj/p/6031662.html 目前遇到一些问 ...