wikioi 1068 乌龟棋

四维dp表示分别用了多少张卡后可以获得的最大分数

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <ctime>
 5 #include <iostream>
 6 #include <algorithm>
 7 #include <set>
 8 #include <vector>
 9 #include <sstream>
10 #include <queue>
11 #include <typeinfo>
12
13 typedef long long ll;
14 using namespace std;
15 int a[400];
16 int b[5];
17 int dp[50][50][50][50];
18 int main()
19 {
20     memset(b,0,sizeof(b));
21     int n,m;
22     cin>>n>>m;
23     for(int i=0;i<n;i++)
24         cin>>a[i];
25     for(int i=0;i<m;i++)
26     {
27         cin>>b[0];
28         b[b[0]]++;
29     }
30     int ans;
31     dp[0][0][0][0]=a[0];
32     for(int i=0;i<=b[1];i++)
33     {
34         for(int j=0;j<=b[2];j++)
35         {
36             for(int k=0;k<=b[3];k++)
37             {
38                 for(int m=0;m<=b[4];m++)
39                 {
40                     ans=0;
41                     if(i)ans=max(ans,dp[i-1][j][k][m]);
42                     if(j)ans=max(ans,dp[i][j-1][k][m]);
43                     if(k)ans=max(ans,dp[i][j][k-1][m]);
44                     if(m)ans=max(ans,dp[i][j][k][m-1]);
45                     dp[i][j][k][m]=ans+a[i+2*j+3*k+4*m];
46                 }
47             }
48         }
49     }
50     cout<<dp[b[1]][b[2]][b[3]][b[4]]<<endl;
51     return 0;
52 }
时间: 2024-08-11 13:26:13

wikioi 1068 乌龟棋的相关文章

1068 乌龟棋 2010年NOIP全国联赛提高组

1068 乌龟棋 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类

codevs 1068 乌龟棋

题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡 片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行

1068 乌龟棋

小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡 片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行卡片中选择 一张之前没有使用过的爬

乌龟棋 (wikioi 1068)题解

[问题描述] 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点.乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控制乌龟棋子前进相

乌龟棋

原题链接:https://www.luogu.org/problem/show?pid=1541 超级暴力的四次方DP. 我们每次的决策是选择爬行卡片来决定乌龟棋的行动,那么好,我们用一个f数组记录使用i张1点数卡,j张2点数卡,k张3点数卡,l张4点数卡所能拿到的最多分数. 那么方程是f[i][j][k][l] =max(f[ i-1 ][ j ][ k ][ l ],f[ i ][ j-1 ][ k ][ l ],f[ i ][ j ][ k-1 ][ l ],f[ i ][ j ][ k

洛谷 【P1541】乌龟棋

P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行

1541 乌龟棋

难度:普及+/提高 题目类型:动态规划 提交次数:2 涉及知识:多维动规 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家

NOIP2010 乌龟棋

题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. …… 1 2 3 4 5 ……N 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡 片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行

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

题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡片,见样例),每种类型的卡片上分别标有1.2.3.4四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数.游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控制乌龟棋子前