bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝(DP)
2017-09-12 17:13
453 查看
1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 456 Solved: 321
[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
Sample Output
4貌似像这种线段按尾排序然后DP的题已经好多道了(第7页的)
dp[i]表示前i小时能参加的最多活动数量
#include<stdio.h> #include<algorithm> using namespace std; typedef struct Line { int x, y; bool operator < (const Line &b) const { if(y<b.y) return 1; return 0; } }Line; Line s[10005]; int dp[200005]; int main(void) { int n, i, p; scanf("%d", &n); for(i=1;i<=n;i++) { scanf("%d%d", &s[i].x, &s[i].y); s[i].y += s[i].x-1; } sort(s+1, s+n+1); p = 1; for(i=1;i<=200000;i++) { dp[i] = dp[i-1]; while(s[p].y==i) { dp[i] = max(dp[i], dp[s[p].x-1]+1); p++; } } printf("%d\n", dp[200000]); return 0; }
相关文章推荐
- BZOJ 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝( dp )
- [BZOJ1664] [Usaco2006 Open]County Fair Events 参加节日庆祝
- 【BZOJ】1664: [Usaco2006 Open]County Fair Events 参加节日庆祝(线段树+dp)
- 【动态规划】bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
- bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝【dp+树状数组】
- bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
- 【BZOJ1664】[Usaco2006 Open]County Fair Events 参加节日庆祝【线段覆盖】【贪心】
- BZOJ 1664 [Usaco2006 Open]County Fair Events 参加节日庆祝 贪心
- 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
- 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
- bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
- [Usaco2006 Open]County Fair Events 参加节日庆祝
- BZOJ 1664 [Usaco2006 Open] County Fair Events 参加节日庆祝
- 【bzoj1663】[Usaco2006 Open]赶集 dp
- BZOJ1727: [Usaco2006 Open]The Milk Queue 挤奶队列
- 【BZOJ】3297: [USACO2011 Open]forgot(dp)
- bzoj[2442][Usaco2011 Open]修剪草坪(单调队列+dp)
- BZOJ 1663: [Usaco2006 Open]赶集 floyd(划掉+dp
- bzoj3297[USACO2011 Open]forgot(dp + string)
- 【BZOJ】1665: [Usaco2006 Open]The Climbing Wall 攀岩(spfa)