USACO 2014 JAN 滑雪录像{silver题3}

滑雪录像{silver3}

【问题描述】

冬奥会的电视时刻表包含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。

思路:一开始觉得用两次DP,第一次DP得出最优解,之后将最优解删去,再DP,最后得出的就是答案,但是本题由于两个录像可能会有覆盖,这样两次DP就需要有特判,然后特判很烦,也就没打,只有70分。后来得知本题原来可以贪心,我也是醉了、、、先将结束时间进行排序,然后记录两台录像机当前最后一个的结束时间,如果一个录像只能由一台相机录,那就给它录,如果两台录像机都可以录此录像,那么就选两台录像机中结束时间晚的那个来录它(至于为什么,也不用说了,自己想)。接下来上代码

 1 var
 2 s,t:array[0..150]of longint;
 3 i,n,t1,t2,ans:longint;
 4
 5 procedure openit;
 6  begin
 7   assign(input,‘recording.in‘);assign(output,‘recording.out‘);
 8   reset(input);rewrite(output);
 9  end;
10
11 procedure closeit;
12  begin
13   close(input);close(output);
14  end;
15
16 procedure qsort(l,r:longint);
17  var i,j,m,temp:longint;
18   begin
19    i:=l;j:=r;m:=t[(l+r) div 2];
20    repeat
21     while t[i]<m do inc(i);
22     while t[j]>m do dec(j);
23     if not (i>j) then
24      begin
25       temp:=s[i];s[i]:=s[j];s[j]:=temp;
26       temp:=t[i];t[i]:=t[j];t[j]:=temp;
27       inc(i);dec(j);
28      end;
29    until i>j;
30    if l<j then qsort(l,j);
31    if i<r then qsort(i,r);
32   end;
33
34
35 begin
36  openit;
37  readln(n);
38  for i:=1 to n do readln(s[i],t[i]);
39  qsort(1,n);      //快排结束时间
40  t1:=0;t2:=0;ans:=0;
41  for i:=1 to n do
42   begin
43    if (s[i]>=t1) and (s[i]>=t2) then
44     begin
45      inc(ans);
46      if t1>t2 then t1:=t[i]
47               else t2:=t[i];
48      continue;
49     end;
50    if s[i]>=t1 then begin inc(ans);t1:=t[i]; end;
51    if s[i]>=t2 then begin inc(ans);t2:=t[i]; end;
52   end;
53  writeln(ans);
54  closeit;
55 end.
时间: 2025-01-14 10:53:45

USACO 2014 JAN 滑雪录像{silver题3}的相关文章

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台录制节目

USACO 2014 FEB自动打字{Silver题1}

自动打字{Silver题1} [问题描述] 贝西新买了手机,打字不方便,请设计一款应用,帮助她快速发消息. 字典里有W(W<=30000)个小写字母构成的单词,所有单词的字符总数量不超过1,000,000,这些单词是无序的.现在给出N(1 <= N <= 1000)个询问,每个询问i包含一个的字符串s_i(每个字符串最多包含1000个字符)和一个整数K_i,对于所有以s_i为前缀的单词,其中按字典序排序后的第K_i个单词,求该单词在原字典里的序号. [文件输入] 第一行为两个整数W和N.

USACO 2014 JAN滑雪场建设{Gold题2}

滑雪场建设{Gold题2} [问题描述] 滑雪场的设计图是一个M*NM x N (1 <= M,N <= 100)的矩阵,每个格子里用一个字母R(表示粗糙)或者S(表示平整). 比如: RSRSSS RSRSSS RSRSSS 农民约翰的拖拉机每次可以将一块B*B (B <= M, B <= N)的区域全部标记B*B (B <= M, B <= N)的R或者S,他希望B能够尽量地大.一个格子可以被多次标记,下一次标记能够覆盖前一次标记,每个格子可以都至少被标记一次. [

USACO翻译:USACO 2014 JAN三题(2)

USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recording skicourse 输入文件名 bteams.in recording.in skicourse.in 输出文件名 bteams.out recording.out skicourse.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比

USACO翻译:USACO 2014 MARCH Silver三题

USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooomoo 输入文件名 irrigation.in lazy.in mooomoo.in 输出文件名 irrigation.out lazy.out mooomoo.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较方式 全文比较 全文比较 全

USACO翻译:USACO 2014 DEC Silver三题

USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 奶牛IDs 搬家 英文题目名称 piggyback cowids relocate 可执行文件名 piggyback cowids relocate 输入文件名 piggyback.in cowids.in relocate.in 输出文件名 piggyback.out cowids.out relocate.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较

USACO翻译:USACO 2012 JAN三题(1)

USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery combos 输入文件名 gifts.in delivery.in combos.in 输出文件名 gifts.out delivery.out combos.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较方式 全文比较 全文比较 全文比

USACO翻译:USACO 2013 JAN三题(1)

USACO 2013 JAN 一.题目概览 中文题目名称 镜子 栅栏油漆 奶牛排队 英文题目名称 mirrors paint lineup 可执行文件名 mirrors paint lineup 输入文件名 mirrors.in paint.in lineup.in 输出文件名 mirrors.out paint.out lineup.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较方式 全文比较 全文比较 全文比较 二.运行内存限制

USACO翻译:USACO 2012 JAN三题(2)

USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛跑步 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking baleshare cowrun 输入文件名 stacking.in baleshare.in cowrun.in 输出文件名 stacking.out baleshare.out cowrun.out 每个测试点时限 1秒 1秒 1秒 测试点数目 10 10 10 每个测试点分值 10 10 10 比较方