代码有点长,不过ACCEPT了

创新点是输入时,用set数组来表示第t秒x个位置上下了一个饼

看了人家给得特殊例子,发现一个问题,当第i秒没有饼下来,或者第i秒饼下的位置人没有走到,这两种特殊情况,所以就加了以下的几行代码

if(set[i][j-1]!=0&&j-1>=0)dp[i][j-1]=max(dp[i][j-1],dp[i-1][j]+set[i][j-1]);
if(set[i][j]!=0)dp[i][j]=max(dp[i][j],dp[i-1][j]+set[i][j]);
if(set[i][j+1]!=0&&j+1<=10)dp[i][j+1]=max(dp[i][j+1],dp[i-1][j]+set[i][j+1]);
if(set[i][j-1]==0&&j-1>=0)dp[i][j-1]=max(dp[i][j-1],dp[i-1][j]+set[i][j-1]);
if(set[i][j]==0)dp[i][j]=max(dp[i][j],dp[i-1][j]+set[i][j]);
if(set[i][j+1]==0&&j+1<=10)dp[i][j+1]=max(dp[i][j+1],dp[i-1][j]+set[i][j+1]);

#include "iostream"
#include "string.h"
using namespace std;
int max(int a,int b){return a>b?a:b;}
int set[100010][12],dp[100010][16];int main(){int n,time,maxb,i,x,t,j;while(cin>>n){if(!n)break;time=0;maxb=0;memset(set,0,sizeof(set));for(i=1;i<=n;i++){cin>>x>>t;set[t][x]++;time=max(time,t);}for(i=0;i<=time;i++){for(j=0;j<=10;j++)dp[i][j]=0;}dp[0][5]=1;for(i=1;i<=time;i++){for(j=0;j<=10;j++){if(dp[i-1][j]){if(set[i][j-1]!=0&&j-1>=0)dp[i][j-1]=max(dp[i][j-1],dp[i-1][j]+set[i][j-1]);if(set[i][j]!=0)dp[i][j]=max(dp[i][j],dp[i-1][j]+set[i][j]);if(set[i][j+1]!=0&&j+1<=10)dp[i][j+1]=max(dp[i][j+1],dp[i-1][j]+set[i][j+1]);if(set[i][j-1]==0&&j-1>=0)dp[i][j-1]=max(dp[i][j-1],dp[i-1][j]+set[i][j-1]);if(set[i][j]==0)dp[i][j]=max(dp[i][j],dp[i-1][j]+set[i][j]);if(set[i][j+1]==0&&j+1<=10)dp[i][j+1]=max(dp[i][j+1],dp[i-1][j]+set[i][j+1]);}}//for(j=0;j<=10;j++)cout<<dp[i][j]<<' ';cout<<endl;
    }for(i=0;i<=10;i++){maxb=max(maxb,dp[time][i]);}if(maxb==0)cout<<0<<endl;else cout<<maxb-1<<endl;}
}

看看人家网上的答案,才知道,自己的重要部分的代码真的挺长的,大神说这是数塔的变型,而且他跟我的一个不同点是,我从0 5走到最后,他是从最后往回走,走到0 5

看看大神的代码吧

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int max3(int a,int b,int c)
{a = a>b?a:b;a = a>c?a:c;return a;
}
int max2(int a,int b)
{a = a>b?a:b;return a;
}
int t[100001][11];
int main()
{int n,T,x,max;while(scanf("%d",&n)&&n){memset(t,0,sizeof(t));max = 0;while(n--){scanf("%d %d",&x,&T);t[T][x]++;max = max>T?max:T;}for(int i = max-1; i >= 0; i--){for(int j = 0; j <= 10; j++){if(j==0)t[i][j] += max2(t[i+1][j],t[i+1][j+1]);else if(j==10) t[i][j] += max2(t[i+1][j],t[i+1][j-1]);else t[i][j] += max3(t[i+1][j-1],t[i+1][j],t[i+1][j+1]);}}cout<<t[0][5]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/dowson/p/3281631.html

hdu1176免费馅饼相关推荐

  1. hdu1176 免费馅饼 动态规划 二维数组实现

    免费馅饼 Time Limit: 1000MS Memory Limit: 32768KB Submit Statistic Discuss Problem Description 都说天上不会掉馅饼 ...

  2. hdu1176 免费馅饼 ( 数塔(DP))

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

  3. hdu1176 免费馅饼 (动态规划)

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

  4. hdu1176 免费馅饼 nyoj613 免费馅饼

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

  5. NYOJ 613 免费馅饼

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  6. 免费馅饼 HDU - 1176

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

  7. 动态规划训练18 [免费馅饼 HDU - 1176 ]

    免费馅饼 HDU - 1176 这也是一道比较简单的动态规划 dp[i][j]表示到时间i,位置为j所能采集的最大馅饼数量 状态转移非常好写 dp[i][j] = max{dp[i-1][j],dp[ ...

  8. HDU 1176 免费馅饼 (动态规划、另类数塔)

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

  9. 【NOI1998】免费馅饼,膜一膜XYX大爷

    免费馅饼 SERKOI最新推出了一种叫做"免费馅饼"的游戏:游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占一格.开始时游戏者站在舞台的正中央,手里拿着一个托盘. ...

  10. 1644 免费馅饼 题解(c++)(S.B.S.)

    1644 免费馅饼(巴蜀oj上的编号) 题面: SERKOI最新推出了一种叫做"免费馅饼"的游戏. 游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占一格.开始时, ...

最新文章

  1. like mysql 相反_mysql真的不能做搜索引擎吗?
  2. fiddler使用_为什么要使用fiddler抓包?抓包用来干什么?
  3. C# EntityFramework连接MySQL (DbFirst)
  4. 北师大版图形的旋转二教案_新北师大版八年级下册数学 《图形的旋转(2)》教案...
  5. Android开发原创教程
  6. next_permutation()
  7. 警方耗时19天抓捕了摄像头破解软件黑产,但你还要知道这些才能放心
  8. Ubuntu最佳字体推荐
  9. 盘点2022年最受欢迎的6大前端框架
  10. 计算机大写改成拼音形式,excle中汉字怎么转为大写拼音/excel如何将数字变成中文大写?...
  11. JAWS模块分析(小东子)
  12. 拥塞控制算法(Congestion Control)对比
  13. python游戏开发引擎_师傅带徒弟学:Python视频课程之游戏开发引擎Cocos2d-Python
  14. NAB展会BOSMA博冠8K全系8K摄像机产品惊艳亮相
  15. Joining multiple DataFrames only supported for joining on index
  16. 樱花樱花想见你 (中日歌词+罗马音+音译)
  17. 华为Freelace pro音质突然下降的解决方案
  18. 微交易平台官网_熟悉官网常用版块
  19. 超强AI绘画Midjourney使用教程
  20. 在word中输入带方块的对号

热门文章

  1. 浅谈协方差矩阵 再谈协方差矩阵之主成分分析
  2. sublime设置代码缩进
  3. day17 10.jdbc的crud操作
  4. 创建java普通工程 ( 4 )
  5. No bean named 'xxxxxxx' available--springboot 上线打war包
  6. 简单的excel上传解析和错误反馈信息下载
  7. MVC在Web框架中的应用
  8. 第一阶段个人总结04
  9. poj1942——组合数学
  10. mysql数据库运行性能检查脚本