P1541-乌龟棋【多维dp】
正题
评测记录链接: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】相关推荐
- 【每日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张牌 思路 ...
- P1541 乌龟棋 题解(洛谷,动态规划递推)
题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...
- 洛谷P1541 乌龟棋
原题传送门 一道比较简单易懂的线性DP题: 设状态dp[a][b][c][d]表示使用数量分别为a, b, c, d张的不同的牌 num数组存储每一个位置的分值 r = a + b * 2 + c * ...
- codevs1068 乌龟棋 题解
题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制 ...
- 【NOIP2010】【P1317】乌龟棋
似乎很像搜索的DP(应该也可以用搜索写) 原题: 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N 格是终点 ...
- 牛客网 【每日一题】7月27日题目精讲—乌龟棋
来源:牛客网: 乌龟棋 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 文章目录 乌龟棋 题目描述 ...
- 【codevs1068】乌龟棋noip10年TG----第二个A掉的钻石题
题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制 ...
- CODE[VS] 1068 乌龟棋
题目链接: CODE[VS]1068 乌龟棋 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格 ...
- AcWing 312. 乌龟棋
小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘只有一行,该行有 N 个格子,每个格子上一个分数(非负整数). 棋盘第 1 格是唯一的起点,第 N 格是终点,游戏要求玩家控制一个乌龟棋子 ...
- CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)
CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...
最新文章
- GNU make manual 翻译(一)
- KMM 搭建环境,并运行安卓和ios
- 【Servlet】Filter过滤器详解、使用示例
- 学习《css世界》笔记之多行文本实现垂直居中
- 数据结构 | B树、B+树、B*树
- 神奇的不拆封读信,MIT透视技术登上nature子刊
- java多线程 信号量(Semaphore),死锁
- 计算机四级网络工程师考试怎样报名,计算机四级网络工程师考试流程
- 【备忘】LAMP兄弟连李明老师讲Linux[更新完毕-共享完毕]
- C4D教程大纲(R23)+笔记
- chrome源码国内下载
- 安卓 类微信开发(二)
- 基于区块链的自动抽奖系统从0到1实现探析预言机与跨链技术的融合发展
- 小米12S和红米K50至尊版哪个好
- 微信小程序支付 tp5
- Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk
- IT运维服务外包管理的两种模式
- 你跳槽怎样考虑可持续性发展
- 三维地下管线系统(CS)视频
- 菜鸟小超超开发小记(一)
热门文章
- mysql group_concat去重_MySQL group_concat() 函数用法
- php类的的属性值,PHP面向对象之旅:类的属性
- post多个参数_关于HTTP GET和POST的区别
- linux如何使用vnc远程登录,如何使用Xmanager及VNC登录远程桌面
- [SpringSecurity]web权限方案_用户注销
- [mybatis]映射文件_select_resultMap_关联查询
- 图的建立-邻接矩阵表示(C语言)
- [Java基础]反射获取成员变量并使用
- C++实现线段树RMQ-单点修改,区间查询
- 7-11 堆栈操作合法性 (20 分)以及堆栈讲解(c语言实现)