BZOJ 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝( dp )
先按時間排序( 開始結束都可以 ) , 然后 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 MBSubmit:?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
71 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
4OUTPUT DETAILS:
FJ can do no better than to attend events 1, 2, 3, and 4.
HINT
Source
Silver
?
轉載于:https://www.cnblogs.com/JSZX11556/p/4558250.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的BZOJ 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝( dp )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android学习笔记四十Prefere
- 下一篇: 数据库编程起别名的3中方式