洛谷 1541 乌龟棋——dp
题目:https://www.luogu.org/problemnew/show/P1541
以用了几张牌为阶段。注意知道了用了4种牌各几张后,当前位置就是确定的,所以不用记录什么的。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=45,M=355; int n,m,lm[5],a[M],dp[N][N][N][N],ans; int rdn() {int ret=0;bool fx=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')fx=0;ch=getchar();}while(ch>='0'&&ch<='9') ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar();return fx?ret:-ret; } int main() {n=rdn(); m=rdn();for(int i=0;i<n;i++) a[i]=rdn();n--;for(int i=1,d;i<=m;i++){d=rdn(); lm[d]++;}dp[0][0][0][0]=a[0];for(int t=1;t<=m;t++)for(int i=0;i<=lm[1];i++)for(int j=0;j<=lm[2]&&j<=t-i;j++)for(int k=0;k<=lm[3]&&k<=t-i-j;k++){int l=t-i-j-k,d=i+(j<<1)+k*3+(l<<2);if(d>n)continue;int ret=0;if(i)ret=max(ret,dp[i-1][j][k][l]);if(j)ret=max(ret,dp[i][j-1][k][l]);if(k)ret=max(ret,dp[i][j][k-1][l]);if(l)ret=max(ret,dp[i][j][k][l-1]);dp[i][j][k][l]=ret+a[d];if(d==n)ans=max(ans,dp[i][j][k][l]);}printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/Narh/p/9757318.html
洛谷 1541 乌龟棋——dp相关推荐
- 洛谷 1541 乌龟棋
看题 这显然是一道线性的dp 如何设计状态呢? 看看题目,总共只有4张牌,而且每张牌的个数不超过40 于是状态就很好设计了 方程如下 dp[i][j][k][l]=max(dp[i-1][j][k][ ...
- 洛谷P1541 乌龟棋
原题传送门 一道比较简单易懂的线性DP题: 设状态dp[a][b][c][d]表示使用数量分别为a, b, c, d张的不同的牌 num数组存储每一个位置的分值 r = a + b * 2 + c * ...
- CJOJ 1087 【NOIP2010】乌龟棋 / Luogu 1541 乌龟棋(动态规划)
CJOJ 1087 [NOIP2010]乌龟棋 / Luogu 1541 乌龟棋(动态规划) Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个 ...
- 洛谷--橙色百道DP总结
最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...
- Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp
cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai在[li,ri][l_i,r_i][li,ri]等概率随机选一个数,求aaa数组不增的概率. 思 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 "低价购买"这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:"低价购买:再低价购买".每次你购买一支股 ...
- 洛谷P1244 青蛙过河 DP/思路
又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...
- 洛谷 P2657 (数位DP)
### 洛谷 P2657 题目链接 ### 题目大意:给你一个数的范围 [A,B] ,问你这段区间内,有几个数满足如下条件: 1.两个相邻数位上的数的差值至少为 2 . 2.不包含前导零. 很简单的数 ...
- 洛谷 Golden Sword(dp,优先队列优化【含板子】)|| 补充练习:洛谷 跳房子
题目链接: 「SWTR-03」Golden Sword - 洛谷 思路: 设表示放第i个原料,锅里共有 j 个时的耐久度之和. 容易知道dp方程为,其中 这样就可以写出暴力dp的代码如下:(需要枚举i ...
最新文章
- you need python_Life is short,you need Python——Python序列(列表)
- 从飞天到倚天 阿里云底层自研技术大爆发
- 原生js实现发短信~chat
- ISQL文件夹,目前唯一解决办法就是sa密码设置为复杂点的,开机密码设置成复杂点的。...
- Linux chkconfig命令详解
- 高斯过程回归(GPR)—— 数学推导
- hibernate继承关系映射方法(三)--每个具体类一张表TPC
- do filtering will real delete note in DB
- Oracle入门(一)之入门级知识详解
- linux man 后面的数字,man命令后面的数字
- 如何为curl命令添加数据?
- Open3d之点云体素下采样
- db2 程序连接字符串
- java与python结合使用_Java与Python使用grpc跨平台调用
- Scrapy基础(八)————图片下载后将本地路径添加到Item中
- 类似MSN的消息提示
- 中石油职称计算机试题,中石油职称计算机水平考试复习题库22-职称计算机考试其它试卷与试题.pdf...
- 万亿级大数据监控平台建设实践
- Radius认证有线与无线网络(一)
- 技术日记2021/2/12 “牛气飞天”恶作剧