字符集为2——过河卒变形
此模型多用于01串、括号串,这种字符集为2的字符串,最好它的个数再给定
1)把01串转化为图上的往右走或者往上走,个数为先限制的图的长宽
2)前缀和后缀可以转化为图上的权值
3)固定的字符可以转化为某个点固定下一步的方向
装化为过河卒问题
eg:牛63 D
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL INF=1ll<<60;
const int MAXN=1e3+100;
int N,cnt0,cnt1;
LL pre,suf;
LL mp[MAXN][MAXN],f[MAXN][MAXN],fm[MAXN][MAXN];
char s[MAXN],t[MAXN];
int main()
{
scanf("%d%d%d%lld%lld",&N,&cnt0,&cnt1,&pre,&suf);
cnt0++,cnt1++;
for(int i=0;i<MAXN;++i){
for(int j=0;j<MAXN;++j){
fm[i][j]=INF;
f[i][j]=-INF;
}
}
scanf("%s%s",s+1,t+1);
int nx=1,ny=1;
for(int i=1;i<=N;++i){
if(s[i]=='1') ny+=1;
else nx+=1;
if(nx>=1&&nx<=cnt0&&ny>=1&&ny<=cnt1){
mp[nx][ny]+=pre;
}else break;
}
nx=cnt0,ny=cnt1;
for(int i=N;i>=1;i--){
if(s[i]=='1') ny-=1;
else nx-=1;
if(nx>=1&&nx<=cnt0&&ny>=1&&ny<=cnt1){
mp[nx][ny]+=suf;
}else break;
}
f[1][1]=