题目大意:
解题思路:
dp+枚举
转移方程:f[i]=min(f[i],f[i−len[j]]+w);转移方程:f[i]=min(f[i],f[i−len[j]]+w);
w就是价值 在加密句子中寻找一段能够以当前单词转化,然后求出价值 最后dp找min
源程序:
#include#include #include #include #define MaxInt 2147483647/3using namespace std;int w,n,l,len[51],f[101],p[26];string s[51],ss;int main(){ //freopen("sents.in","r",stdin); //freopen("sents.out","w",stdout); scanf("%d",&n); for (int i=1;i<=n;i++) { cin>>s[i]; len[i]=s[i].size(); } cin>>ss; l=ss.size(); for (int i=1;i<=l;i++) { f[i]=MaxInt; for (int j=1;j<=n;j++) { if (i