首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1664: [Usaco2006 Open]County Fair Events 参加节日庆祝

1664: [Usaco2006 Open]County Fair Events 参加节日庆祝

作者头像
HansBug
发布2018-04-11 10:51:13
4990
发布2018-04-11 10:51:13
举报
文章被收录于专栏:HansBug's LabHansBug's Lab

1664: [Usaco2006 Open]County Fair Events 参加节日庆祝

Time Limit: 5 Sec  Memory Limit: 64 MB

Submit: 255  Solved: 185

[Submit][Status][Discuss]

Description

Farmer John has returned to the County Fair so he can attend the special events (concerts, rodeos, cooking shows, etc.). He wants to attend as many of the N (1 <= N <= 10,000) special events as he possibly can. He's rented a bicycle so he can speed from one event to the next in absolutely no time at all (0 time units to go from one event to the next!). Given a list of the events that FJ might wish to attend, with their start times (1 <= T <= 100,000) and their durations (1 <= L <= 100,000), determine the maximum number of events that FJ can attend. FJ never leaves an event early.

有N个节日每个节日有个开始时间,及持续时间. 牛想尽可能多的参加节日,问最多可以参加多少. 注意牛的转移速度是极快的,不花时间.

Input

* Line 1: A single integer, N.

* Lines 2..N+1: Each line contains two space-separated integers, T and L, that describe an event that FJ might attend.

Output

* Line 1: A single integer that is the maximum number of events FJ can attend.

Sample Input

7 1 6 8 6 14 5 19 2 1 8 18 3 10 6 INPUT DETAILS: Graphic picture of the schedule: 11111111112 12345678901234567890---------这个是时间轴. -------------------- 111111 2222223333344 55555555 777777 666 这个图中1代表第一个节日从1开始,持续6个时间,直到6.

Sample Output

4 OUTPUT DETAILS: FJ can do no better than to attend events 1, 2, 3, and 4.

HINT

Source

Silver

题解:一个考得烂了的贪心,很经典的最多不向交区间问题而已

 1 /**************************************************************
 2     Problem: 1664
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:28 ms
 7     Memory:1008 kb
 8 ****************************************************************/
 9  
10 var
11    i,j,k,l,m,n:longint;
12    a:array[0..100005,1..2] of longint;
13 procedure swap(var x,y:longint);
14           var z:longint;
15           begin
16                z:=x;x:=y;y:=z;
17           end;
18 procedure sort(l,r:longint);
19           var i,j,x,y:longint;
20           begin
21                i:=l;j:=r;x:=a[(l+r) div 2,2];y:=a[(l+r) div 2,1];
22                repeat
23                      while (a[i,2]<x) or ((a[i,2]=x) and (a[i,1]>y)) do inc(i);
24                      while (a[j,2]>x) or ((a[j,2]=x) and (a[j,1]<y)) do dec(j);
25                      if i<=j then
26                         begin
27                              swap(a[i,1],a[j,1]);
28                              swap(a[i,2],a[j,2]);
29                              inc(i);dec(j);
30                         end;
31                until i>j;
32                if i<r then sort(i,r);
33                if l<j then sort(l,j);
34           end;
35 begin
36      readln(n);
37      for i:=1 to n do readln(a[i,1],a[i,2]);
38      for i:=1 to n do a[i,2]:=a[i,1]+a[i,2]-1;
39      sort(1,n);l:=0;
40      for i:=1 to n do if a[i,1]<>a[l,1] then
41          begin
42               inc(l);
43               a[l,1]:=a[i,1];
44               a[l,2]:=a[i,2];
45          end;
46      n:=l;l:=0;k:=0;
47      for i:=1 to n do
48          if a[i,1]>l then
49             begin
50                  inc(k);
51                  l:=a[i,2];
52             end;
53      writeln(k);
54      readln;
55 end.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-05-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
  • Description
  • Input
  • Output
  • Sample Input
  • Sample Output
  • HINT
  • Source
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档