解决【洛谷】P1541 乌龟棋,打卡
这应该是个四维的dp,思想与背包相似 对于四种卡abcd,上一张取还是不取就是背包的思想 dp[a][b][c][d]:表示你出了a张爬行牌1,b张爬行牌2,c张爬行牌3,d张爬行牌4时的得分 当前位置r=a1+b2+c3+d4+1(从格子1开始走的) 标程: #include<bits/stdc++.h> using namespace std;intdp[42][42][42]...
洛谷P1541 [NOIP2010 提高组] 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张爬行卡片,分成4种不同的类型(MM张卡...
,爬行牌 出牌数量为 ,爬行牌 出牌数量为 时所能获得的最大分数。仔细一看是和多重背包一样的。 代码 #include<bits/stdc++.h> using namespace std; int a[360],b[360],dp[130][130][130][130]; int main() { #ifndef ONLINE_JUDGE freopen("input.in","r",stdin); #endif int n,m,x; cin...
【题解】洛谷P1541[NOIP2010]乌龟棋 背包问题 技术标签: 背包问题题目链接 设 dp[p1][p2][p3][p4]dp[p1][p2][p3][p4]dp[p1][p2][p3][p4] 表示分别选择 p1,p2,p3,p4p1,p2,p3,p4p1,p2,p3,p4 张 1,2,3,41,2,3,41,2,3,4 卡牌的最多分数。 dp[p1][p2][p3][p4]=max{dp[p1...
【洛谷p1541】乌龟棋 四维DP了解一下??? 好了首先一般不会先想到四维DP,一般都是想到二维DP了,所以我们先讲一个二维的dfs做法(尽管只有30pts) T成这样子: 30pts dfs Code 思路的话不是很难理解,num表示当前到达的棋盘位置(一开始显然是1),ans表示当前分数的最大值,然后当num==n的时候,与当前记录的最大...
洛谷1541 乌龟棋 既然我放在动态规划这个分类,不是动态规划是什么??? 既然没有规定乌龟卡的使用顺序,那么用桶排,sum[i]记录i类卡的张数。 状态设计:当数据范围不大,并且情况不多的题,可以试试每一维记录一个元素的状态。dp[a][b][c][d]代表用了a张1类牌,b张2类牌,c张3类牌和d张4类牌时可以获得...
洛谷1541 乌龟棋——dp,题目:https://www.luogu.org/problemnew/show/P1541以用了几张牌为阶段。注意知道了用了4种牌各几张后,当前位置就是确定的,所以不用记录什么的。
洛谷P1540 乌龟棋,第一感觉是定义状态f[n][i][j][k][kk],但这样空间和时间都承受不下。我们可以设状态为f[i][j][k][kk],这样可以省掉一个n,因为我们依据行走步数可以直接算出行走距离.Code:
一开始直接用01背包 后来发现这个物品和位置有关。 也就是价值不是固定的 后来看了题解 看了卡片最多就4 所以这是一个四维费用的背包, 每一维是卡片的数量 价值就是当前的位置的价值。 但是与常规的背包还是有点不同 代码中没有枚举物品这一项 实际上循环里面的四个卡片的判断语句就是枚举四个物品 ...