正题

评测记录链接:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1541


题目大意

在不同的格子停留会获得不同的价值,有m张移动牌,可以移动1∼41∼41\sim 4步(每张牌固定),求最大价值。


解题思路

用fx1,x2,x3,x4fx1,x2,x3,x4f_{x1,x2,x3,x4}来表示有x1张移动1格的牌,x2张移动2格的牌,x3张移动3格的牌,x4张移动4格的牌。然后动态转移不想解释。


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,c[360],t[5],f[131][131][131][131],x;
int way(int x,int y,int z,int w)
{return c[1+x+y*2+z*3+w*4];}//计算价值
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&c[i]);for(int i=1;i<=m;i++){scanf("%d",&x);t[x]++;}f[0][0][0][0]=c[1];for(int i=0;i<=t[1];i++)for(int j=0;j<=t[2];j++)for(int k=0;k<=t[3];k++)for(int q=0;q<=t[4];q++){if(i)f[i][j][k][q]=max(f[i][j][k][q],f[i-1][j][k][q]+way(i,j,k,q));if(j)f[i][j][k][q]=max(f[i][j][k][q],f[i][j-1][k][q]+way(i,j,k,q));if(k)f[i][j][k][q]=max(f[i][j][k][q],f[i][j][k-1][q]+way(i,j,k,q));if(q)f[i][j][k][q]=max(f[i][j][k][q],f[i][j][k][q-1]+way(i,j,k,q));} printf("%d",f[t[1]][t[2]][t[3]][t[4]]);
}

P1541-乌龟棋【多维dp】相关推荐

  1. 【每日DP】day6 P1541 乌龟棋(四维DP)难度⭐⭐⭐

    P1541 乌龟棋 四维DP--四种状态,所以四维DP f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]:表示牌号分别为1,2,3,4,的时候用了i,j,k,l张牌 思路 ...

  2. P1541 乌龟棋 题解(洛谷,动态规划递推)

    题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...

  3. 洛谷P1541 乌龟棋

    原题传送门 一道比较简单易懂的线性DP题: 设状态dp[a][b][c][d]表示使用数量分别为a, b, c, d张的不同的牌 num数组存储每一个位置的分值 r = a + b * 2 + c * ...

  4. codevs1068 乌龟棋 题解

    题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制 ...

  5. 【NOIP2010】【P1317】乌龟棋

    似乎很像搜索的DP(应该也可以用搜索写) 原题: 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N 格是终点 ...

  6. 牛客网 【每日一题】7月27日题目精讲—乌龟棋

    来源:牛客网: 乌龟棋 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 文章目录 乌龟棋 题目描述 ...

  7. 【codevs1068】乌龟棋noip10年TG----第二个A掉的钻石题

    题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制 ...

  8. CODE[VS] 1068 乌龟棋

    题目链接: CODE[VS]1068 乌龟棋 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格 ...

  9. AcWing 312. 乌龟棋

    小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘只有一行,该行有 N 个格子,每个格子上一个分数(非负整数). 棋盘第 1 格是唯一的起点,第 N 格是终点,游戏要求玩家控制一个乌龟棋子 ...

  10. CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)

    CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...

最新文章

  1. GNU make manual 翻译(一)
  2. KMM 搭建环境,并运行安卓和ios
  3. 【Servlet】Filter过滤器详解、使用示例
  4. 学习《css世界》笔记之多行文本实现垂直居中
  5. 数据结构 | B树、B+树、B*树
  6. 神奇的不拆封读信,MIT透视技术登上nature子刊
  7. java多线程 信号量(Semaphore),死锁
  8. 计算机四级网络工程师考试怎样报名,计算机四级网络工程师考试流程
  9. 【备忘】LAMP兄弟连李明老师讲Linux[更新完毕-共享完毕]
  10. C4D教程大纲(R23)+笔记
  11. chrome源码国内下载
  12. 安卓 类微信开发(二)
  13. 基于区块链的自动抽奖系统从0到1实现探析预言机与跨链技术的融合发展
  14. 小米12S和红米K50至尊版哪个好
  15. 微信小程序支付 tp5
  16. Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk
  17. IT运维服务外包管理的两种模式
  18. 你跳槽怎样考虑可持续性发展
  19. 三维地下管线系统(CS)视频
  20. 菜鸟小超超开发小记(一)

热门文章

  1. mysql group_concat去重_MySQL group_concat() 函数用法
  2. php类的的属性值,PHP面向对象之旅:类的属性
  3. post多个参数_关于HTTP GET和POST的区别
  4. linux如何使用vnc远程登录,如何使用Xmanager及VNC登录远程桌面
  5. [SpringSecurity]web权限方案_用户注销
  6. [mybatis]映射文件_select_resultMap_关联查询
  7. 图的建立-邻接矩阵表示(C语言)
  8. [Java基础]反射获取成员变量并使用
  9. C++实现线段树RMQ-单点修改,区间查询
  10. 7-11 堆栈操作合法性 (20 分)以及堆栈讲解(c语言实现)