HDU 1176 DP

题目大意:

在0~10这11个点上面接饼 , 每秒最多往左或往移动一格,或者保持原地不动

令dp[i][j]表示在第 i 秒在 第 j 个点上最多能得到的饼的数量

dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1] , dp[i-1][j+1]) + a[i][j]  //a[i][j]在 i 时刻第 j 个位置会掉下来的饼的数量,如果没有置为0

这里要注意的一点是,最初从 5 号点出发,我们需要考虑到后面即使有饼因为根本无法走到那个位置,因而拿不到饼的情况

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4
 5 using namespace std;
 6 const int TIME = 100005;
 7
 8 int dp[TIME][12] , vis[12] , a[TIME][12];
 9
10
11 int main()
12 {
13     int n , x , t , time;
14     while(scanf("%d" , &n) , n)
15     {
16         time = 0;
17         memset(a , 0 , sizeof(a));
18         for(int i = 0 ; i<n ; i++){
19             scanf("%d%d" , &x , &t);
20             time = max(time , t);
21             a[t][x]++;
22         }
23
24         memset(dp , -1 , sizeof(dp));
25         dp[0][5] = 0;//表示在第0秒只有5号点可到达的,其他不可达的点均为-1
26         for(int i = 1 ; i<=time ; i++){
27             //动态规划更新第time时间的11个点的位置能达到的最优的dp值
28             if(dp[i-1][0] >= 0 || dp[i-1][1] >= 0)
29                 dp[i][0] = max(dp[i-1][0] , dp[i-1][1]) + a[i][0];
30
31             for(int j = 1 ; j<10 ; j++){
32                 if(dp[i-1][j-1] >= 0 || dp[i-1][j] >= 0 || dp[i-1][j+1] >=0)
33                     dp[i][j] = max(dp[i-1][j] , max(dp[i-1][j-1] , dp[i-1][j+1])) + a[i][j];
34             }
35             if(dp[i-1][10] >= 0 || dp[i-1][9] >= 0)
36                 dp[i][10] = max(dp[i-1][10] , dp[i-1][9]) + a[i][10];
37
38             /*for(int j = 0 ; j<=10 ; j++)
39                 printf("%-4d" , dp[i][j]);
40             printf("\n");*/
41         }
42
43         int maxn = 0;
44         for(int i = 0 ; i<=10 ; i++)
45             maxn = max(maxn , dp[time][i]);
46         printf("%d\n" , maxn);
47     }
48     return 0;
49 }
时间: 2024-10-13 07:12:55

HDU 1176 DP的相关文章

hdu 1176 dp 数塔问题

哎,一开始没看到从5开始.... 后来写懵了,用了queue正推,记录能到达的节点,p[i+1][j] = max(p[i][j],max(p[i][j-1],p[i][j+1])) 嗯,用stl mle了,自己写queue又tle,不知道为什么嚒,好像bfs我从没a过... 看了dicuss的思路,只看到数塔两个字我就懂了... 只能说巧妙了,区间反向确定我确实没想到... //数塔问题 /* t=0 5 t=1 456 t=2 34567 t=3 2345678 t=4 123456789

HDU 1176免费馅饼 DP数塔问题转化

L - 免费馅饼 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1176 Appoint description:  prayerhgq  (2015-07-28) System Crawler  (2015-11-21) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.

HDU 1176 免费馅饼 (DP)

题目链接:HDU 1176 免费馅饼 中文题. dp[i][j]表示第i秒在j位置得到最大的馅饼数,右边1步,左边1步,原地不动三个状态转移过来. 状态转移方程:dp[i][j]=max(dp[i+1][j],max(dp[i+1][j+1],dp[i+1][j-1]))+mp[i][j]; AC代码: #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; con

hdu 1176 免费馅饼 (dp 数塔类型)

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25712    Accepted Submission(s): 8760 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的1

[2016-03-29][HDU][1176][免费馅饼]

时间:2016-03-29 09:46:34 星期二 题目编号:[2016-03-29][HDU][1176][免费馅饼] #include <algorithm> #include <cstring> #include <cstdio> using namespace std; const int maxt = 100000 + 10; int dp[maxt][11]; int a[maxt][11]; int main(){ int n,x,t,maxT; whi

G - 免费馅饼 HDU 1176 (动态规划---数塔的变形 )

G - 免费馅饼 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1176 Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接.但由

HDU 4832(DP+计数问题)

HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行,竖用几行,然后相乘累加起来就是答案 代码: #include <stdio.h> #include <string.h> #include <iostream> using namespace std; typedef long long ll; const ll MOD = 9999991; const int N = 1005; int t, n, m, k, x, y; ll dp1

hdu 3944 dp?

DP? Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 128000/128000 K (Java/Others)Total Submission(s): 1804    Accepted Submission(s): 595 Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0,1,2,-a

hdu 5389 dp类似背包

http://acm.hdu.edu.cn/showproblem.php?pid=5389 Problem Description Zero Escape, is a visual novel adventure video game directed by Kotaro Uchikoshi (you may hear about ever17?) and developed by Chunsoft. Stilwell is enjoying the first chapter of this