Codeforces #135 Div2简单题解

不多扯,直入正题。


A.   k-String  http://www.codeforces.com/problemset/problem/219/A

水题。先统计字母个数,然后判断是否能将这些字母分成k份,能的话分成k份就好了。


B.   Special Offer! Super Price 999 Bourles!  http://www.codeforces.com/problemset/problem/219/B

构造题。我一开始是从小往打构造,马上发现错了。然后就从大往小构造,方法是每次都把最后一位变成9,如果最后一位是9那么不调整,如果不是9那么前一位要减一,直到小于最小的数。


C. Color Stripe http://www.codeforces.com/problemset/problem/219/C

贪心或者DP,我是用贪心。先特判k==2的情况,这时候就两种情况要么奇数位为A偶数位为B,要么奇数位为B偶数位为A,答案是两种中转变次数较小的。k != 2的时候,就从前往后遍历,找一整块相同的字母,然后把第2,4...变成和后面一个不一样的字母即可,因为颜色大等于3,那么肯定可以找到一种和当前颜色不一样又和后面一个颜色不一样,而这样显然是最优方案。这题有人用O(n*m*m)的DP去写,我觉得很神奇,这样最多的运算量是3亿多。


D. Choosing Capital for Treeland http://www.codeforces.com/problemset/problem/219/D

树形DP。这题有个很巧妙的转换,那就是把边的方向转变成边权,如果正向那么边权威0,如果反向,那么边权为1.经过这样转换,问题就变成求以某点为根到其他各点的边权总和,然后求边权总和最小的那些点。这类树形DP很经典,做法是先以某点为根向叶子节点遍历,然后再以前面那点为根向下更新答案。


E. Parking Lot http://www.codeforces.com/problemset/problem/219/E

目测是用堆或线段树维护最远的距离,但是不会写,数据结构太弱了。这里有题解:Here.


本文ZeroClock原创,但可以转载,因为我们是兄弟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值