如果有写的不好的文章欢迎评论,我会在有时间的时候重写一篇更好的。
Luogu分析这是一道较水的DP题。我们用$f[i][j][k][l]$表示用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][l-1])+a[1+i+2j+3k+4l]$代码#include <algorit...
Luogu分析并查集。用数组$f[i][j]$来表示i和j是敌人,在每次输入敌人关系时循环合并即可。代码#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace st...
Luogu分析这是一道DP题。设$f[i][j]$表示A串的前i个字符和B串的前j个字符的最小字串距离。A串的第i个字符可以与B串的第j个字符匹配,也可以和空格匹配,B串的第j个字符也可以和空格匹配。那么我们得到状态转移方程:$f[i] [j] = min(min(f[i] [j-1],f[i-1] [j])+k, f[i-1] [j-1]+|a[i]-b[i]|)$代码#include &...