题意:在一条 0 ~ 10 的坐标轴上,在整数点上会掉烙饼,一个人第 0 秒站在坐标 5 处,每秒他能够左右移动一个单位的坐标或不移动,并接住该坐标位置当前时间落下的烙饼,(例如第0秒他在坐标5处,第一秒他能在坐标4或5或6处,并接到该点第一秒落下的饼,同一个点同一秒可以落下多个饼),问最多能够接到多少饼

我的做法是以 dp [ i ] [ j ] 表示在坐标 i 处第 j 秒能接到的饼的最优情况。转移时由上一秒种能够移动到 i 点的最大 dp 值转移过来,并且加上当前能够拿到的最大值(这是我的第一思路,但事实上题目描述并不是这样,他只能捡到他移动到的点当前时间掉落的烙饼,而我以为可以捡到左中右三格上最大的一格,所以orzWA五连发```)。

dp[ i ] [ j ] = max ( dp [ i - 1 ] [ j - 1 ] , dp [ i ] [ j - 1 ] , dp [ i + 1 ] [ j - 1 ] ) + a [ i ] [ j ];当然, i + 1, i - 1 都必须保证在 0 ~ 10 范围内且第 j - 1 秒是能够达到的。

当然,我看其他人的题解其实都是从最后一秒向第 0 秒推,我看完之后也觉得可能比我的做法更加优化,因为这样就不需要考虑那一秒的时候是否能够达到那个点了。

自己还是太弱了,中问题都看不懂了啊!

 #include<stdio.h>
#include<string.h>
#define max(a,b) a>b?a:b int a[][],dp[][]; int main(){
int n;
while(scanf("%d",&n)!=EOF&&n!=){
memset(a,,sizeof(a));
memset(dp,-,sizeof(dp));
int i,j,x,t,m=,k,ans=;
for (i=;i<=n;i++){
scanf("%d%d",&x,&t);
a[x][t]++;
if(t>m)m=t;
}
dp[][]=a[][];
ans=max(ans,dp[][]);
/* dp[5][1]=max(a[5][1],a[4][1]);
dp[5][1]=max(dp[5][1],a[6][1]);
ans=dp[5][1];
dp[5][1]=dp[5][0];
dp[5][1]+=a[5][1];
ans=max(dp[5][1],ans);
*/ for(t=;t<=m;t++){
for(i=;i<=;i++){
for(j=i-;j<=i+;j++){
if(<=j&&j<=&&dp[j][t-]>=){
dp[i][t]=max(dp[i][t],dp[j][t-]);
}
}
/* int m0=0;
for(j=i-1;j<=i+1;j++){
if(0<=j&&j<=10){
m0=max(m0,a[j][t]);
}
}
*/ if(dp[i][t]>=){
/* int m0=0;
for(j=i-1;j<=i+1;j++){
if(0<=j&&j<=10){
m0=max(m0,a[j][t]);
}
}*/
dp[i][t]+=a[i][t];
}
// dp[i][t]+=m0;
ans=max(ans,dp[i][t]);
}
}
printf("%d\n",ans);
}
return ;
}

hdu1176 dp的更多相关文章

  1. DP 免费馅饼 HDU1176

    DP 免费馅饼 HDU1176 vjudge题面 一道基本的DP题,状态转移很好想,每一个状态的位置\(pos\)都只能由上一秒的\(pos-1, pos, pos+1\)三个位置转移而来(当然要判断 ...

  2. HDU1176:免费馅饼(DP)

    Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...

  3. hdu-1176(dp)

    解题思路:用dp做的,dp[i][j]表示在i时刻,j点的最大馅饼.a[i][j]表示在i这个时刻j点同时掉落的馅饼: 每个点除了0和10之外,都有三种状态: 1.没有移动,这样值就为dp[i][j] ...

  4. HDU1176:免费馅饼(dp,数字三角形的应用)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176 这题就是数字三角行的变形,可惜对于我这个渣渣来说就是没发现,区别是他可以保持在三个点,他左边的点,右 ...

  5. 「暑期训练」「基础DP」免费馅饼(HDU-1176)

    题意与分析 中文题就不讲题意了.我是真的菜,菜出声. 不妨思考一下,限制了我们决策的有哪些因素?一,所在的位置:二,所在的时间.还有吗?没有了,所以设dp[i][j]" role=" ...

  6. kuangbin专题十二 HDU1176 免费馅饼 (dp)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. [hdu1176]免费馅饼(数塔dp)

    题意:中文题,不解释了 = = 解题关键:逆推,转化为数塔dp就可以了 dp[i][j]表示在i秒j位置的最大值. 转移方程:$dp[i][j] = \max (dp[i + 1][j],dp[i + ...

  8. HDU1176 免费馅饼 —— DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others ...

  9. HDU1176免费馅饼(DP)

    都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果掉在了地上当然就 ...

随机推荐

  1. npm 安装文件 运行报错 %1 is not a valid Win32 application

    安装了那个模板出了错报这样的错误 “%1 is not a valid Win32 application” 你就除那个模板新安装. 如下例: 运行 npm install -g @angular/c ...

  2. sublime插件安装及常用插件配置

    1.下载 :百度云 工具中 2.注册 sgbteam Single User License EA7E-1153259 8891CBB9 F1513E4F 1A3405C1 A865D53F 115F ...

  3. 20170814xlVBA部分代号收盘价转置

    原始数据: 转置效果: Sub TransformData() Dim Rng As Range Dim Arr As Variant Dim Dic As Object Dim dCode As O ...

  4. Vue.js 渲染函数, JSX(未掌握,未学完)

    渲染函数 , JSX(没完成学习) 基础: 实例属性:vm.$slots default 属性包括了所有没有被包含在具名插槽中的节点. 渲染函数: render: function(createEle ...

  5. Confluence 6 连接到一个 LDAP 目录

    https://www.cwiki.us/display/CONFLUENCEWIKI/Connecting+to+an+LDAP+Directory

  6. Educational Codeforces Round 57题解

    A.Find Divisible 沙比题 显然l和2*l可以直接满足条件. 代码 #include<iostream> #include<cctype> #include< ...

  7. 使用a标签实现软件下载及下载量统计

    通常最简单的软件下载就是采用如下方式: <a id="welcomeMiddleBtn" href="${basePath}/files/client/instal ...

  8. @Component 元注解

    @Component 元注解 这是一个元注解,意思是它可以用于标注其他注解,被它标注的注解和它起到相同或者类似的作用.Spring用它定义了其他具有特定意义的注解如@Controller @Servi ...

  9. 铺音out1

    1◆ 单个 c k s tʃ     g gg g dʒ   2◆ 多个 si dʒ su     wr w wh   sc s     ph f gh       ck ʃ ch sh     tc ...

  10. navicat安装步骤

    Navicat安装