【题目大意】

【思路】

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

在学校要晚自习到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. TensorFlow中get_variable共享变量调用

    import tensorflow as tf with tf.variable_scope('v_scope',reuse=True) as scope1: Weights1 = tf.get_va ...

  2. 关于Linux下s、t、i、a权限

    文件权限除了r.w.x外还有s.t.i.a权限: 首先我们利用umask查看系统的权限为四位,首位就是特殊权限位,SetUID为4,SetGID为2,t为1 [root@iz2ze46xi6pjjj6 ...

  3. linux下终端游戏

    sl 一列火车 oneko 一只淘气的小猫

  4. linux 设备树【转】

    转自:http://blog.csdn.net/chenqianleo/article/details/77779439 [-] linux 设备树 为什么要使用设备树Device Tree 设备树的 ...

  5. 在 kernel 下打出 有帶參數的log。 怪異現象與解決方式。

    code battery_log(BAT_LOG_CRTI, "youchihwang abc10010 xxxaaa8-2\r\n"); battery_log(BAT_LOG_ ...

  6. 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6152 Friend-Graph 暴暴暴暴力

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6152 题意:判定一个无向图是否有三个点的团或者三个点的独立集. 解法:Ramsey theorem,n ...

  7. ubuntu命令行操作mysql常用操作

    登陆mysql harvey@harvey-Virtual-Machine:~/ruby/mydiary$ mysql -u root -p Enter password: Welcome to th ...

  8. HDU-5384

    Danganronpa Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  9. 利用flex布局来column分布

    html代码 <div class='items'> <div class='item'></div> <div class='item'></d ...

  10. 《java并发编程实战》读书笔记1--线程安全性,内置锁,重入,状态

    什么是线程安全? 当多个线程访问某个类时,不管这些的线程的执行顺序如何,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 哈哈书上的解释,还是翻译过 ...