方程挺好想的,就是本题的 初始化 我弄了挺久 不是忘了这个就是那个 #include<cstdio> #include<cstdlib> #include<iostream> #include<cstring> using namespace std; int n1,n2; const int N=103; char s1[N],s2[N]; int d1[N],d2[N]; const int tab[5][5]= { {5,-1,-2,-1,-3}, {-1,5,-3,-2,-4}, {-2,-3,5,-2,-2}, {-1,-2,-2,5,-1}, {-3,-4,-2,-1,0} }; int f[N][N]; int main() { scanf("%d%s",&n1,s1+1); scanf("%d%s",&n2,s2+1); for(int i=1;i<=n1;i++) { if(s1[i]=='A') d1[i]=0; else if(s1[i]=='C') d1[i]=1; else if(s1[i]=='G') d1[i]=2; else if(s1[i]=='T') d1[i]=3; } for(int i=1;i<=n2;i++) { if(s2[i]=='A') d2[i]=0; else if(s2[i]=='C') d2[i]=1; else if(s2