↓ 跳过正文
  1. Posts/

codeforces 447 B. DZY Loves Strings

·156 字·1 分钟

简单贪心。 因为填的字母没有次数限制,所以最优策略很容易想到,就是在最后面填最大的。 不用实际去填,算出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    }

相关文章

hdu 1009 FatMouse' Trade

·267 字·1 分钟
简单贪心…. 需要注意的是数据是非负,所以有0的情况要考虑周全,基本都要特殊处理。 多WA了三次,不知道为什么交C++可以过,交G++就不行。

hdu 1050 Moving Tables

·185 字·1 分钟
一开始算法想的有点问题。 坑点在于走廊两侧都有房间 也就是说room1和room2对应的位置是一样的

hdu 5120 - Intersection

·665 字·2 分钟
题意:求两个相等的圆环的相交的面积…. 简单计算几何+容斥原理? 扇形面积公式记错调了半天2333333333 这题不难…倒是从学长那里收获了几点关于代码规范的问题… 听说了学长在北京区域赛时把PI定义错了一位结果一直WA的教训…. 以后还是写acos(-1)吧 局部变量和全局变量因为【想怎么其变量名想得整个人都不好了】就起成了一样的…被学长给了差评。 哦,对!还有一个就是发现了cmath库里有一个奇葩的函数名叫y1.。。。。。。。 —————————————————————————————————————————————— 竟然CE了 提示 error:pow(int,int) is ambiguous 看来我对语言的掌握程度还是不行呀…..

hdu 5119 - Happy Matt Friends(dp解法)

·820 字·2 分钟
Description Matt has N friends. They are playing a game together. Each of Matt’s friends has a magic number. In the game, Matt selects some (could be zero) of his friends. If the xor (exclusive-or) sum of the selected friends’magic numbers is no less than M , Matt wins.

hdu 5113 Black And White

·1018 字·3 分钟
题意是说用 k 种颜色填充 nm 的方格,第 i 种颜色要用 c[i] 次,保证 c[i](i 属于 1..k)的和为 nm,问是否有可行解,若有,输出任意一种。 第一感觉是 dfs,而且数据范围还那么小。但是鉴于我上次 dfs 写成汪的经历……嗯,不过群里有学长说似乎剪枝不太好想? 我一开始分了四类:o 行 o 列、e 行 e 列、e 行 o 列、o 行 e 列(o 是 odd,e 是 even),然后将 c[i] 排序,先填大的 c[i],感觉这样应该更容易找到解。交了一发,WA 掉了。发现当 k 较小的时候,也就是 c[i] 都相对较大的时候,先填大的 c[i] 的策略会出现错误。于是我换了下,按 c[i] 的大小从两边往中间填。然后我还发现其实 o 行 o 列和 e 行 e 列可以归为一类,同理,后两种也可以归为一类。又交,又 WA 2333333。然后想了好久,发现对于上面说的两类的处理顺序不同会得到不同的结果,只有一种是对的。于是加了个 judge 函数判断冲突,如果冲突就换个顺序。再交,A 了。