http://acm.hdu.edu.cn/showproblem.php?pid=1176

首先可以处理出整张地图的状态。

book[T][POS]表示第T秒,在第pos个地方有多少个馅饼。

dp[i][j]表示第i秒的时候,在第j个位置能得到的最大值。

边界值:dp[1][4] = book[1][4];  dp[1][5] = book[1][5]; dp[1][6] = book[1][6];

因为一开始一步只能走到这里。

然后转移枚举下一秒的时候,由上面的状态选一个最大的枚举下来。

因为只和上一唯有关,所以可以用滚动数组来实现。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
const int maxn = 1e5 + 20;
int n;
int book[maxn][12];
int dp[2][12];
void work() {memset(book, 0, sizeof book);memset(dp, 0, sizeof dp);int mx = -inf;for (int i = 1; i <= n; ++i) {int T, pos;scanf("%d%d", &pos, &T);book[T][pos]++;mx = max(mx, T);}dp[1][5] = book[1][5];dp[1][4] = book[1][4];dp[1][6] = book[1][6];int now = 0;for (int i = 2; i <= mx; ++i) {for (int j = 0; j <= 10; ++j) {if (j == 0) {dp[now][j] = max(dp[!now][j], dp[!now][j + 1]) + book[i][j];} else if (j == 10) {dp[now][j] = max(dp[!now][j - 1], dp[!now][j]) + book[i][j];} else {dp[now][j] = max(dp[!now][j - 1], max(dp[!now][j], dp[!now][j + 1])) + book[i][j];}}now = !now;}int ans = -inf;for (int i = 0; i <= 10; ++i) ans = max(ans, dp[!now][i]);printf("%d\n", ans);
}int main() {
#ifdef localfreopen("data.txt","r",stdin);
#endifwhile (scanf("%d", &n) && n) work();return 0;
}

View Code

转载于:https://www.cnblogs.com/liuweimingcprogram/p/6003782.html

HDU 1176 免费馅饼 矩阵取数, dp + 滚动数组相关推荐

  1. hdu 1176 免费馅饼(DP)

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

  2. HDU 1176 免费馅饼(记忆化搜索)

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

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

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

  4. [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]

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

  5. hdu 1176:免费馅饼

    hdu1176: http://poj.org/problem?id=1179题意:有一一维坐标系,从0编号到10,一个人站在5上,现在天上正在掉馅饼,这个人每秒只能移动一个单位,所以第一秒只能接住掉 ...

  6. hdu 1176 免费馅饼(nyist 613)

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 dp[i][j]:表示第i秒接j位置的馅饼的最大值. 三种状态: dp[i][j]=max(dp[i-1] ...

  7. HDU 1176 免费馅饼

    一道简单的动态规划题,与http://acm.hdu.edu.cn/showproblem.php?pid=2084数塔思想是一样的,都是从后面往前面推: View Code #include< ...

  8. 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★

    P1005 矩阵取数游戏 输入 2 3 1 2 3 3 4 2 输出 82 说明/提示 NOIP 2007 提高第三题. 数据范围: 60%60\%60% 的数据满足:1≤n,m≤301\le n,m ...

  9. P1005 矩阵取数游戏(__int128模板/简单dp)

    转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j ​ 均为非负整数.游戏规则如下: 每次取数时 ...

最新文章

  1. php进销存 手机版_酒水批发用传统本地化部署进销存与云进销存手机版的区别!...
  2. Cisco Packet Tracer v7.0安装包下载(358MB)
  3. Spring Cloud Gateway 源码解析(2) —— 路由
  4. 使用 selector 从 SAP Spartacus state 里读取 Cart 数据
  5. 格罗方德起诉台积电侵犯16项专利、影响巨大;中兴通讯与印尼Smartfren展开合作;网传FB开发新通讯应用Threads……...
  6. Python3 协程 + 正则 批量爬取斗鱼美女图片
  7. Tricks(四十)—— 神经网络解决与(或)及异或问题
  8. 在克隆环境上分离httpd和subversion。
  9. 各浏览器flash插件下载地址
  10. pymol怎么做底物口袋表面_pymol常用操作
  11. aliyun的产品都是有哪些,主要是做什么的呢?
  12. 为Eclipse安装lombok插件
  13. 解决Pycharm装Illuminated Cloud之后无法创建项目的思路_艾孜尔江撰稿
  14. ospf协议基本概念
  15. vue移动端适配解决方案
  16. 小猪佩奇python_小猪佩奇社会人专用服务器,有意思的python小程序,附python代码...
  17. 王坚清华ATF演讲实录
  18. 英飞凌单片机知乎_如何评价单片机大神郭天祥?
  19. Mycat集群部署(基于HAProxy + Mycat)
  20. Xftp7下载安装与使用

热门文章

  1. Linux centos openshift安装教程整理
  2. (网址收藏)Golang模块之HTTP
  3. Scala特质trait具备Java中类和接口的功能
  4. jQuery EasyUI 折叠面板accordion的使用实例
  5. css修改同步保存到文件,谷歌浏览器修改CSS和js后同步保存到文件中 (译)
  6. docker中部署Tomcat
  7. 结合源码深入理解Android Crash处理流程
  8. Matlab实现字符串分割
  9. 8086存储器编址 和 I/O编址
  10. 设计模式的理解:对23个设计模式的总结