先按时间排序( 开始结束都可以 ) , 然后 dp( i ) = max( dp( i ) , dp( j ) + 1 ) ( j < i && 节日 j 结束时间在节日 i 开始时间之前 ) answer = max( dp( i ) ) ( 1 <= i <= n )

--------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
 
#define rep( i , n ) for( int i = 0 ; i < n ; i++ )
#define clr( x , c ) memset( x , c , sizeof( x ) )
 
using namespace std;
 
const int maxn = 10000 + 5;
 
struct data {
int l , r;
void Read() {
scanf( "%d%d" , &l , &r );
r += l - 1;
}
bool operator < ( const data &rhs ) const {
return r < rhs.r;
}
};
  
data A[ maxn ];
 
int dp[ maxn ];
int main() {
// freopen( "test.in" , "r" , stdin );
int n;
cin >> n;
rep( i , n )
   A[ i ].Read();
   
sort( A , A + n );
   
rep( i , n ) {
dp[ i ] =1;
rep( j , i ) if( A[ j ].r < A[ i ].l )
   
   dp[ i ] = max( dp[ i ] , dp[ j ] + 1 );
   
}
int ans = 0;
rep( i , n ) 
   ans = max( ans , dp[ i ] );
cout << ans << "\n";
return 0;
}

--------------------------------------------------------------------------------

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

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 262  Solved: 190
[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

最新文章

  1. 【原】xcode5.0升级5.1遇到的clang: error: unknown argument: &#39;-fobj-arc&#39;错误
  2. PAT-乙级-1047. 编程团体赛(20)
  3. 实现自己的脚本语言ngscript之三:语法设计
  4. .getBoundingClientRect()
  5. Unity3d Material(材质) 无缝拼接
  6. jQuery.merge 源码阅读
  7. 谜题 UVA227
  8. 对类对象使用new时地址分配的情况
  9. TensorFlow练习13: 制作一个简单的聊天机器人
  10. MT【300】余弦的三倍角公式
  11. Java框架之Spring(二)
  12. AntDesign从入门到精通
  13. C从源码到运行发生了哪些事
  14. SQL--数据--基本操作
  15. js array数组检测方式
  16. VC2010中&quot;Include Directories&quot; 和 &quot;Additional Include Directories&quot;的区别
  17. Binary Search二分法搜索C++程序
  18. 允许root远程登录Solaris
  19. Mysql-两表的连接,copy表,select的各种用法
  20. c语言学生信息管理系统-学习结构体

热门文章

  1. Linux 网络编程基础(1)--网络相关的数据结构及转化函数
  2. js导出成excel
  3. Debug目录下没有.exe文件
  4. Android开发之布局优化
  5. Swift中类的初始化器与继承
  6. EF的泛型封装 写的很好 转自Fly_Elephant http://www.cnblogs.com/xiaofeixiang/p/4188600.html?utm_source=tuicool
  7. Foundation 框架 NSArray、NSMutableArray排序
  8. memset 还可以这样用
  9. Qt将窗体变为顶层窗体(activateWindow(); 和 raise() )
  10. Android开发中怎样调用系统Email发送邮件(多种调用方式)