【题目大意】

【思路】

最简单的思路是五维数组,但是当前走到的步数由已经取到的卡片决定,所以只需要四维。本来想要改一个滚动数组的,但是好像没有滚起来,算了(ノ`Д)ノ。

在学校要晚自习到21:15,回到家大概就22:00了,本来每天晚上想要切题的但是想到第二天五点多又要起床了,算了orz在努力问老师讨机房钥匙,虽然并没有成功。

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
const int MAXN=+;
const int MAXM=+;
int n,m;//棋子的数量和卡片的数量
int a[MAXN];//每一格的分数
int num[];
int f[MAXM][MAXM][MAXM][MAXM];//四张卡片分别取这四张时候的最多得分 int main()
{
//freopen("tortoise1.in","r",stdin);
scanf("%d%d",&n,&m);
for (int i=;i<n;i++) scanf("%d",&a[i]);
/*因为起点是第一个格子,所以下标从零开始设*/
for (int i=;i<m;i++)
{
int t;
scanf("%d",&t);
num[t-]++;
}
cout<<num[]<<endl;
memset(f,,sizeof(f));
for (int i1=;i1<=num[];i1++)
for (int i2=;i2<=num[];i2++)
for (int i3=;i3<=num[];i3++)
for (int i4=;i4<=num[];i4++)
{
int score=a[i1+i2*+i3*+i4*];
f[i1][i2][i3][i4]=;
if (i1>) f[i1][i2][i3][i4]=max(f[i1-][i2][i3][i4],f[i1][i2][i3][i4]);
if (i2>) f[i1][i2][i3][i4]=max(f[i1][i2-][i3][i4],f[i1][i2][i3][i4]);
if (i3>) f[i1][i2][i3][i4]=max(f[i1][i2][i3-][i4],f[i1][i2][i3][i4]);
if (i4>) f[i1][i2][i3][i4]=max(f[i1][i2][i3][i4-],f[i1][i2][i3][i4]);
f[i1][i2][i3][i4]+=score;
}
cout<<f[num[]][num[]][num[]][num[]]<<endl;
return ;
}

【动态规划去除冗余】NOIP2010-乌龟棋的更多相关文章

  1. NOIP2010乌龟棋[DP 多维状态]

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

  2. NOIP2010 乌龟棋

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

  3. CH5E01[NOIP2010] 乌龟棋[暴力]

    众所周知,由于这个人太菜了,所以她又来切上古水题了. 显然最多$40^4$种状态,暴力跑出可以拼出多少种状态,然后按序号从小到大对应的状态瞎转移即可. 我知道我想繁了,但是不想改了,因为思路一出来,没 ...

  4. tyvj 1402 乌龟棋 dp

    P1402 [NOIP2010]乌龟棋 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2010提高组复赛第二题 描述 小明过生日的时候,爸爸送给他一 ...

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

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

  6. NOIP2010提高组乌龟棋 -SilverN

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

  7. [NOIP2010] 提高组 洛谷P1541 乌龟棋

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

  8. 【NOIP2010】【P1317】乌龟棋

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

  9. 【洛谷1541】【CJOJ1087】【NOIP2010】乌龟棋

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

随机推荐

  1. splay:优雅的区间暴力!

    万年不更的blog主更新啦!主要是最近实在忙,好不容易才从划水做题的时间中抽出一段时间来写这篇blog 首先声明:这篇blog写的肯定会很基础...因为身为一个蒟蒻深知在茫茫大海中找到一个自己完全能够 ...

  2. linux编程之文件操作

    在linux下用文件描述符来表示设备文件盒普通文件,文件描述符是一个整型的数据,所有对文件的操作都是通过文件描述符来实现的. 文件描述符是文件系统中连接用户空间和内核空间的枢纽,当我们打开一个或者创建 ...

  3. Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密

    一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...

  4. python基础===codecs打开文件,解决文件编码格式的问题

    codecs https://docs.python.org/3/library/codecs.html 我们经常用open打开文件的时候会出现各式各样的错误,编码格式的问题,等等~真的很烦 现在尽量 ...

  5. ADO POST时出现“无法为更新定位行,一些值可能已在最后一次读取后已更改”问题的解决方法

    原因有这样几种: 1.在数据库设计时,为某些字段设置了默认值,在修改进行提交以后,数据库会自动修改对应字段的所有行的默认值,从而导致了数据库与数据集中数据的不一致,使ADOQuery无法对数据集进行定 ...

  6. 使用Webpack搭建Vue项目

    前提: 1.  借助Node.js环境里的npm来安装, 2.  设置好npm镜像, (比如淘宝的npm镜像:输入 引用 npm install -g cnpm –registry=https://r ...

  7. [收集]关于MSSQL数据库的一些查询

    sqlserver快速查找所有存储过程中是否包含某字符 --将XXXX替换成你要查找的内容 select name from sysobjects o, syscomments s where o.i ...

  8. Aspxgridview 根据条件来自定义计算Totalsummery

    protected void ASPxGridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEven ...

  9. linux命令(14):ifup/ifdown/ip addr命令

    开启网卡:ifup eth0 关闭网卡:ifdown eth0 查看网卡接入状态:ip addr[可查看哪块网卡up/down状态]

  10. Flask 的系统学习

    详细看地址: http://www.cnblogs.com/wupeiqi/articles/7552008.html 一. 说明 Flask是一个基于Python开发并且依赖jinja2模板和Wer ...