题目链接: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 乌龟棋相关推荐

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

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

  2. 洛谷 1541 乌龟棋——dp

    题目:https://www.luogu.org/problemnew/show/P1541 以用了几张牌为阶段.注意知道了用了4种牌各几张后,当前位置就是确定的,所以不用记录什么的. #includ ...

  3. 洛谷 1541 乌龟棋

    看题 这显然是一道线性的dp 如何设计状态呢? 看看题目,总共只有4张牌,而且每张牌的个数不超过40 于是状态就很好设计了 方程如下 dp[i][j][k][l]=max(dp[i-1][j][k][ ...

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

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

  5. 【每日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张牌 思路 ...

  6. 【NOIP2010】【P1317】乌龟棋

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

  7. AcWing 312. 乌龟棋

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

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

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

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

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

最新文章

  1. 2019攻防世界web新手区
  2. Docker 宿主机定时清除容器的运行日志
  3. (22)通过代码修改PTE实现挂物理页
  4. 获取当前屏幕显示的viewcontroller
  5. Linux中输入输出重定向和管道
  6. SAP Commerce Cloud SmartEdit 的安装
  7. IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡
  8. 进行判断使用class_记一次使用 Arthas 热更新线上代码
  9. IBM IT 企业基础架构解决方案
  10. RGB、HSL、Hex网页色彩码,看完这篇全懂了
  11. 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
  12. request:fail 发生了 SSL 错误无法建立与该服务器的安全连接——openssl报漏洞该升级了
  13. 中秋节到了我给大家用python做一个月饼
  14. C1任务-修改游戏存档
  15. 2020年文档相似性算法:初学者教程
  16. AsyncTask的原理
  17. el-table 怎么合并相同单元格
  18. 西瓜书第三章:LDA(及详细Fisher实现),QDA的python实现[仅代码实现]
  19. 谷歌seo外链预算方案,影响谷歌反向链接成本的因素
  20. PHP使用QQ邮箱发送邮件

热门文章

  1. 在vi里面实现字符串的批量替换
  2. .NET Framework介绍
  3. (转)hibernate 注解的问题(异常)集合
  4. 改变TabNavigator控件第一个tab标签的偏移量.
  5. 有關window.showModalDialog的應用11/30
  6. 使用Tesseract-OCR训练文字识别记录
  7. Caffe 编译安装
  8. python爬虫知识点总结(十三)使用代理处理反扒抓取微信文章
  9. ElasticSearch 2 (21) - 语言处理系列之单词识别
  10. 【原创】RabbitMQ 之 Access Control(翻译)