标签:cst ring namespace ++ arp har etl iostream class
#include<cstdio> #include<iostream> #include<string> #include<algorithm> using namespace std; int f[2000][2000]; int main() { string str; int n,m,i,j,cost[30]; cin>>n>>m; getchar(); getline(cin,str); for(i=1;i<=n;i++) { char c; int cost1,cost2; cin>>c>>cost1>>cost2; cost[c-‘a‘]=min(cost1,cost2); } for(i=str.size()-2;i>=0;i--) { for(j=i+1;j<str.size();j++) { if(str[i]==str[j]) f[i][j]=f[i+1][j-1]; else { f[i][j]=min((f[i+1][j]+cost[str[i]-‘a‘]),(f[i][j-1]+cost[str[j]-‘a‘])); } } } cout<<f[0][str.size()-1]<<endl; return 0; }
算是字符串dp中的回文串,但是实际上
是背包的思想,在确保回文串的前提下求最小的代价。
加上lcs的做法。
标签:cst ring namespace ++ arp har etl iostream class
原文地址:https://www.cnblogs.com/beiyueya/p/13064727.html