Codeforces Round #565(Div.3) 解题报告

随便拉的一场打打玩玩……

比赛页面(1176)

A – Divide it!

能除以2就除以2,不能除以2再乘以一个$\frac{2}{3}$或$\frac{4}{5}$,再除以2就行

B – Merge it!

直接看除以3的余数:余数为0就不管,就看余数为1和2的怎么凑可以凑出最多的余数为0的数。

发现一个1和一个2就可以,剩下的1(或2)需要3个来凑。

C – Lose it!

贪心就行……就像拦截导弹第二问那样……

D – Recover it!

这题题意还看了半天……愣是没理解append啥意思

我们把b从大到小排序,发现只需要扫一遍就行。

一个数无非就两种情况:是质数和不是质数。

是质数的话说明肯定是由一个更小的质数生成而来,更小的那个质数就在后面,并且是a中的数;

不是质数的话这个数就肯定是a中的数,并且生成了一个更小的数。

E – Cover it!

对整张图黑白染色就行……

F – Destroy it!

一道还算不错的dp题。

首先,对于每一轮,我们可以只选择其中五张牌:花费为1的伤害最高的3张,花费为2伤害最高的1张,花费为三伤害最高的1张。为什么呢?因为限定每一轮花费不超过3,所以组合一下发现花费为1的最多用三张,其他同理。

然后因为还有一个双倍伤害的设定,那么dp数组需要再开一维表示现在是用到的第几张牌。

然后决策最多有6种:对用一张、两张、三张讨论可得6种决策。

然后就可以上dp了。

 

发表评论