洛谷 P1540 乌龟棋
第一感觉是定义状态f[n][i][j][k][kk],但这样空间和时间都承受不下。我们可以设状态为f[i][j][k][kk],这样可以省掉一个n,因为我们依据行走步数可以直接算出行走距离.
Code:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 42;
long long f[maxn][maxn][maxn][maxn];
int val[400], steps[10];
inline int dist(int a,int b,int c,int d)
{
return a + 2*b + 3*c + 4*d;
}
int main()
{
// freopen("in.txt","r",stdin);
int n,m;
scanf("%d%d",&n,&m);
for(int i = 0;i < n;++i)scanf("%d",&val[i]);
for(int i = 1;i <= m;++i)
{
int a;
scanf("%d",&a);
++ steps[a];
}
f[0][0][0][0] = val[0];
for(int i = 0;i <= steps[1]; ++i)
for(int j = 0;j <= steps[2];++j)
for(int k = 0;k <= steps[3]; ++k)
for(int kk = 0; kk <= steps[4]; ++kk)
{
if(i + j + k + kk == 0) continue;
int h = dist(i,j,k,kk);
if(i >= 1)f[i][j][k][kk] = max(f[i][j][k][kk], f[i-1][j][k][kk] + val[h]);
if(j >= 1)f[i][j][k][kk] = max(f[i][j][k][kk], f[i][j-1][k][kk] + val[h]);
if(k >= 1)f[i][j][k][kk] = max(f[i][j][k][kk], f[i][j][k-1][kk] + val[h]);
if(kk >= 1)f[i][j][k][kk] = max(f[i][j][k][kk], f[i][j][k][kk-1] + val[h]);
}
printf("%lld",f[steps[1]][steps[2]][steps[3]][steps[4]]);
return 0;
}
洛谷 P1540 乌龟棋的更多相关文章
- 洛谷P1541 乌龟棋(四维DP)
To 洛谷.1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游 ...
- 洛谷 p1541乌龟棋
洛谷 p1541乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是终点,游戏 ...
- [洛谷P1541] 乌龟棋
洛谷题目链接:乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩 ...
- [NOIP2010] 提高组 洛谷P1541 乌龟棋
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...
- 洛谷 P1541 乌龟棋 Label:O(n^4)的dp
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...
- 洛谷 P1541 乌龟棋
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...
- codevs1068 乌龟棋==洛谷P1541 乌龟棋
P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家 ...
- 洛谷P1541 乌龟棋 [2010NOIP提高组]
P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家 ...
- dp——洛谷 P1541 乌龟棋 —— by hyl天梦
题目:(转自 https://www.luogu.com.cn/problem/P1541) 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是 ...
随机推荐
- vue+ElementUI 日期选择器 获取时间戳
<div class="block"> <span class="demonstration">daterange</span&g ...
- 《奋斗吧!菜鸟》 第八次作业:Alpha冲刺 Scrum meeting 4
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 A ...
- 学习EXTJS6(1)安装环境
1.官方下载地址: extjs6 GPL版:https://www.sencha.com/legal/gpl/ sencha cmd:https://www.sencha.com/products/e ...
- mybatis使用-高级用法(二)
新建学生表和学生证表 --学生表 CREATE TABLE student( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'id', `nam ...
- Solr 6.4.2对比Solr 4.10.3的新特性
1.可以修改时区了.(Solr4.10.3及之前的版本,时区只能是UTC,开发人员需要转换后才能使用.当时为了解决不能设置时区的问题,每个文档都有两个Date,一个是utc时间,一个是utc+8的中国 ...
- Maven错误:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?的解决方法
错误: [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather tha ...
- POJ 3225
基本参考http://blog.csdn.net/metalseed/article/details/8039326 总的来说,敲完一遍理解会更加好一点,标记下传法. U:把区间[l,r]覆盖成1I: ...
- 【slighttpd】基于lighttpd架构的Server项目实战(6)—预备知识之Http
接下来,我们開始http部分的开发. 在此之前.有必要先学习一下HTTP协议- http1.1 的rfc文档:http://www.ietf.org/rfc/rfc2616.txt 简单介绍 超文本传 ...
- Python查询数据库,中文的结果显示不出来
表里面的数据: 问题:查询数据库,返回结果不是中文可以,是中文的话就报错UnicodeEncodeError: 'gbk' codec can't encode character '\xd4' in ...
- gcc 4.8安装
suse的安装参考:http://blog.csdn.net/cloudskyfhx/article/details/17660607 有些错误处理见本文黄色部分 CentOS 6.4 编译安装 gc ...