我这个哪里有问题呢?#include<bits/stdc++.h>using namespace std;const int N=30;int mp[N][N];char s[600];int n,k;int f[600][600];int main(){ cin>>n>>k; for(int i=0;i<k;i++) { for(int j=0;j<k;j++) { cin>>mp[i][j]; } } cin>>s+1; for(int i=0;i<=n;i++) { for(int j=1;j+i-1<=n;j++){ if(i==2){ f[j][i]=mp[s[j]-'a'][s[j+1]-'a']; } if(i>2){ f[j][i]=max(f[j][i-2]+mp[s[j+i-1]-'a'][s[j+i-2]-'a'],f[j+1][i-2]+mp[s[j]-'a'][s[i+j-1]-'a']); f[j][i]=max(f[j][i],mp[s[j]-'a'][s[j+1]-'a']+f[j+2][i-2]); } } } cout<<f[0][n]<<endl; return 0;}
点赞 评论

相关推荐

牛客网
牛客企业服务