codeforces 447 B. DZY Loves Strings
简单贪心。 因为填的字母没有次数限制,所以最优策略很容易想到,就是在最后面填最大的。 不用实际去填,算出ans就可以。
1
2
3
4 #include <iostream>
5 #include <cmath>
6 #include <cstring>
7 #include <algorithm>
8
9 using namespace std;
10
11 int main()
12 {
13 int k,len;
14 char st[2000];
15 int a[2000];
16 memset(a,0,sizeof(a));
17 int w[50];
18 cin>>st>>k;
19 int m=-1;
20 for (int i=1;i<=26;i++)
21 {
22
23 cin>>w[i];
24 if (w[i]>m)
25 m=w[i];
26 }
27 len=strlen(st);
28 for (int i=0;i<len;i++)
29 a[i]=(int)(st[i]-96);
30 long long ans=0;
31 for (int i=0;i<len;i++)
32 {
33 ans=ans+w[a[i]]*(i+1);
34 // cout<<ans<<endl;
35 }
36 for (int i=len;i<len+k;i++)
37 ans=ans+m*(i+1);
38 cout<<ans<<endl;
39 return 0;
40 }
41