有关同时进行两条线路的四维dp】的更多相关文章

今天发现自己完全对这种dp没有思路……我果然太蒻了./落泪.jpg 对于一个N*N的方格图中选择两条线路从左上角到右下角,其实只要用一个数组f[i][j][p][q]记录一个人走到(i,j)另一个人走到(p,q)的最优解就好啦. 由于行进的方向是固定的,即只可以向右或向下,所以只可能有四种情况:f[i-1][j][p-1][q],f[i-1][j][p][q-1],f[i][j-1][p-1][q],f[i][j-1][p][q-1]. 得到状态转移方程: f[i][j][p][q]=max(f…
Alyona and Strings 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/D Description After returned from forest, Alyona started reading a book. She noticed strings s and t, lengths of which are n and m respectively. As usual, reading bored Aly…
题目链接:https://www.luogu.org/problemnew/show/P1004 思路: 这道题是四维DP的模板题,与luoguP1006传纸条基本相似,用f[i][j][k][l]表示第一个人走到(i,j),第二个人走到(k,l)时两个人取得数的和的最大值.显然复杂度最多为9×9×9×9=6561,所以这个方法可行. 状态转移方程为:f[i][j][k][l]=max(f[i][j-1][k][l-1],max(f[i][j-1][k-1][l],max(f[i-1][j][k…
题目描述(https://www.luogu.org/problemnew/show/1004) 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0.如下图所示(见样例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 . B 某人…
四维dp例题 四维dp便是维护4个状态的dp方式 拿题来说吧. 1. 洛谷P1004 方格取数 #include<iostream> #include<cstdio> using namespace std; const int maxn=12; int n; int map[maxn][maxn]; int dp[maxn][maxn][maxn][maxn]; int main(){ cin>>n; int x,y,z; while(cin>>x>…
<题目链接> 题目大意: 输出树上每个点到其它点的最大距离. 解题分析: 下面的做法是将树看成有向图的做法,计算最长路需要考虑几种情况. dp[i][0] : 表示以i为根的子树中的结点与i的最大距离 dp[i][1] : 表示以i为根的子树中的结点与i的次大距离 dp[i][2] : 表示i往父亲节点方向走的最大距离 第一就是点 i 在以点 i 为根的子树中的最长距离,这个可以直接在点 i 的子树中求得: 第二就是点 i 朝父亲节点方向的最长距离,这个距离分为三种: 1) 点 i 在以 fa…
Problem D: 乌龟棋 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 24  Solved: 15[Submit][Status][Web Board] Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行 N 个格子,每个格子上一个分数(非负整数).棋盘第 1 格是唯一 的起点,第 N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点. 乌龟棋中 M 张爬行卡片,分成 4 种不同的类型(M 张…
P1004 方格取数 思路如下 这题是看洛谷大佬的思路才写出来的,所以我会把大佬的思路展示如下: 1⃣️:我们可以找到一个叫思维dp的东西,dp[i][j][k][l],其中前两维表示一个人从原点出发到(i,j)的路线,而后两维表示:另外一个人从原点出发到(k, l)的路线,通过这个四维的数组,我们就可以暴力的模拟出每个所走的路线. 2⃣️:其次我们思考…
我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y);} if (A) dfs(x+1,A-1,B,C,D,y+a[x+1]); if (B) dfs(x+2,A,B-1,C,D,y+a[x+2]); if (C) dfs(x+3,A,B,C-1,D,y+a[x+3]); if (D) dfs(x+4,A,B,C,D-1,y+a[x+4]); }…
Patti and Terri run a bar in which there are 15 stools. One day, Darrell entered the bar and found that the situation how customers chose the stools were as follows: OOEOOOOEEEOOOEOO means that the stool in a certain position is used, while E means t…