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张牌
思路详解

#include<bits/stdc++.h>
#define ls (p<<1)
#define rs (p<<1|1)
#define mid ((l+r)>>1)
using namespace std;
typedef long long ll;
const ll N=40;
ll n,m,f[N][N][N][N],arr[1000],b[100];
int main()
{scanf("%lld %lld",&n,&m);for(int i=1;i<=n;++i)scanf("%lld",&arr[i]);ll tmp;for(int i=1;i<=m;++i)scanf("%lld",&tmp),b[tmp]++;f[0][0][0][0]=arr[1];for(int i=0;i<=b[1];++i)for(int j=0;j<=b[2];++j)for(int k=0;k<=b[3];++k)for(int l=0;l<=b[4];++l){ll p=1+i+j*2+k*3+l*4;if(i)f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]+arr[p]);if(j)f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]+arr[p]);if(k)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]+arr[p]);if(l)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]+arr[p]);}printf("%lld\n",f[b[1]][b[2]][b[3]][b[4]]);return 0;
}

有任何疑问欢迎评论哦虽然我真的很菜
点个关注再走吧

【每日DP】day6 P1541 乌龟棋(四维DP)难度⭐⭐⭐相关推荐

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

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

  2. 洛谷P1541 乌龟棋

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

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

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

  4. 洛谷 P1004 方格取数 【多线程DP/四维DP/】

    题目描述(https://www.luogu.org/problemnew/show/1004) 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0. ...

  5. 山东省第五届ACM省赛题——Colorful Cupcakes(四维dp)

    题目描述 Beaver Bindu has N cupcakes. Each cupcake has one of three possible colors. In this problem we ...

  6. 【动态规划】P1004 方格取数(四维dp模板题)

    与传纸条方法相同! 用f[i][j][k][l]表示第一个人走到(i,j),第二个人走到(k,l)的最优解 我们考虑两个人同时走,就相当于数字三角形. 状态转移方程为: f[i][j][k][l]=m ...

  7. 【NOIP2010】【P1317】乌龟棋

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

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

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

  9. CODE[VS] 1068 乌龟棋

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

最新文章

  1. 源码级深挖AQS队列同步器
  2. Java中String类的常见面试题
  3. C语言笔记:格式化输入输出(fprintf、fscanf、sscanf...)
  4. Albert launcher安装与使用
  5. C语言:用单链表实现输入排序
  6. Perfect swift-server/http
  7. 【window】Windows10下为PHP安装redis扩展
  8. C++算法之 一句话推断一个整数是不是2 的整数次方
  9. Element is missing end tag
  10. 一个“编码十几年”的『老程序员』分享的四点心得
  11. C语言读取指定文件夹下面的所有文件
  12. 实时障碍更新 局部路径寻优算法 矢量地图数据 局部路径规划解集_自动驾驶近期行为预测和规划的一些文章介绍(下)...
  13. CY3/Cy5/cy7/FITC/PEG/DBCO/BSA/PEI标记修饰纳米金球和纳米金棒的功能化修饰(Gold Nanoparticles)
  14. 学通java的24堂课_学通Java的24堂课
  15. scite php配置 下载,SciTE 的配置记录
  16. python npv 计算公式_PMP知识点总结 -- 净现值(NPV)
  17. NR SSB Beam Sweeping
  18. Oracle 11g使用Net Configuration Assistant工具配置监听程序
  19. SAP 标准教材和自学方法 摘自qiangsheng
  20. python123测验5随机密码生成_基于社会工程学的弱口令密码字典生成工具

热门文章

  1. 遗传算法求解几何问题
  2. 通过SID查找历史执行的SQL语句
  3. day02 cssjs 基础
  4. 物联网安全领域都有哪些机会?来看看这19家公司都是怎么玩的
  5. 代码重构中的几个概念
  6. windows8.1与centos7.0双系统启动项设置
  7. JAE京东云引擎Git上传管理代码教程和京东云数据库导入导出管理
  8. 使apk具有system权限
  9. linux sersync2 ssh start=true,rsync+nfs+sersync实战案例
  10. macos降级_macOS Big Sur如何降级