Luogu 1541 乌龟棋
题目链接:https://www.luogu.org/problemnew/show/P1541
思路:
考虑若一张卡片被使用过,则可以从它当时的状态来进行转移。
故设$f[i][j][k][l]$表示用了$i$张$1$卡,$j$张$2$卡......时分数的最大值。
枚举四张卡片是否使用过,从中选取最大的,最后加上当前的得分。
启示:
$dp$不关心其过程是怎么实现的,即具体细节,只关心结果。
数组...开大些...
代码:
#include <bits/stdc++.h> const int MAXN=4000; const int MAXM=50; using namespace std; int n,m,b[MAXN],c[MAXN],num[10],f[MAXM][MAXM][MAXM][MAXM]; int main(){cin>>n>>m;for(int i=0;i<n;i++) cin>>b[i];for(int i=1;i<=m;i++){cin>>c[i];num[c[i]]++; }for(int i=0;i<=num[1];i++){for(int j=0;j<=num[2];j++){for(int k=0;k<=num[3];k++){for(int l=0;l<=num[4];l++){if(i)f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]);if(j)f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]);if(k)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]);if(l) f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]);f[i][j][k][l]+=b[i+j*2+k*3+l*4];}}}}cout<<f[num[1]][num[2]][num[3]][num[4]]<<endl;return 0; }
转载于:https://www.cnblogs.com/BeyondLimits/p/11153322.html
Luogu 1541 乌龟棋相关推荐
- CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)
CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...
- 洛谷 1541 乌龟棋——dp
题目:https://www.luogu.org/problemnew/show/P1541 以用了几张牌为阶段.注意知道了用了4种牌各几张后,当前位置就是确定的,所以不用记录什么的. #includ ...
- 洛谷 1541 乌龟棋
看题 这显然是一道线性的dp 如何设计状态呢? 看看题目,总共只有4张牌,而且每张牌的个数不超过40 于是状态就很好设计了 方程如下 dp[i][j][k][l]=max(dp[i-1][j][k][ ...
- P1541 乌龟棋 题解(洛谷,动态规划递推)
题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...
- 【每日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张牌 思路 ...
- 【NOIP2010】【P1317】乌龟棋
似乎很像搜索的DP(应该也可以用搜索写) 原题: 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N 格是终点 ...
- AcWing 312. 乌龟棋
小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘只有一行,该行有 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格是终点,游戏要求玩家控制 ...
最新文章
- 2019攻防世界web新手区
- Docker 宿主机定时清除容器的运行日志
- (22)通过代码修改PTE实现挂物理页
- 获取当前屏幕显示的viewcontroller
- Linux中输入输出重定向和管道
- SAP Commerce Cloud SmartEdit 的安装
- IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡
- 进行判断使用class_记一次使用 Arthas 热更新线上代码
- IBM IT 企业基础架构解决方案
- RGB、HSL、Hex网页色彩码,看完这篇全懂了
- 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
- request:fail 发生了 SSL 错误无法建立与该服务器的安全连接——openssl报漏洞该升级了
- 中秋节到了我给大家用python做一个月饼
- C1任务-修改游戏存档
- 2020年文档相似性算法:初学者教程
- AsyncTask的原理
- el-table 怎么合并相同单元格
- 西瓜书第三章:LDA(及详细Fisher实现),QDA的python实现[仅代码实现]
- 谷歌seo外链预算方案,影响谷歌反向链接成本的因素
- PHP使用QQ邮箱发送邮件
热门文章
- 在vi里面实现字符串的批量替换
- .NET Framework介绍
- (转)hibernate 注解的问题(异常)集合
- 改变TabNavigator控件第一个tab标签的偏移量.
- 有關window.showModalDialog的應用11/30
- 使用Tesseract-OCR训练文字识别记录
- Caffe 编译安装
- python爬虫知识点总结(十三)使用代理处理反扒抓取微信文章
- ElasticSearch 2 (21) - 语言处理系列之单词识别
- 【原创】RabbitMQ 之 Access Control(翻译)