这是国庆放假前的一场国庆欢乐组队赛,一点也不欢乐(ಥ﹏ಥ),全机房一起比,我跟南佬一队。比的时候不上心,卡在了C题,二分想到之后就想不出来了,我也是服了我自己。因此比的很臭,才300分。╰(‵□′)╯
老师说只用把前五题写掉就好了,我也就只写了五题,其实都不难,就是比的时候不一定想得到(因为马上就要放假了,大家心里不都想着回家怎么玩么ヽ(゚Д゚)ノ,不过也许有大佬会想着怎么认真学习_(:з」∠)_,反正我是前者٩(๑❛ᴗ❛๑)۶,话说最近怎么喜欢上用颜文字了ヽ(´•ω•`)、)
A 回文数字
这题其实看样例就可以看出一点名堂。一个回文串满足从中间断开后两边是对称的,因此我们只要考虑一边即可,也就是说改变一边,另一边直接对称过去,显然改变左边更优,因为这样得到的串肯定最小。接下来我们只要在 mid (即中间位置,假如长度是偶数则为左边的最后一个数)位置加 1 即可,然后不断进位,最后对称过来。
除了以上,我们还要考虑两种情况:1.全是9,也就是说,进位以后长度会变长;2.不用加
B 基因补全
这题要转化一下思路,题目故意说是有多少种补全方案,实际就是有多少种匹配的方案,只要求出
S
串能与
C 武装士兵
答案显然满足二分的性质,重点在于如何
check
,我们肯定要选花费最小的
k
个装备和钱最多的
D 刺杀
首先要明确一个简单的性质:假如杀死了一个带子弹的人,那么所有带子弹的人都可以杀死,留下的子弹可以用来杀没带子弹的人,那肯定是留下来的子弹越多越好啊。如何处理没有子弹的人呢?肯定是有的肉搏,有的用子弹杀,肉搏的肯定是体力消耗小的人, 因为用子弹杀体力消耗小的人就是浪费。因为我们枚举肉搏多少个没子弹的人,然后二分找到最多能肉搏杀掉几个带子弹的人(两者都是按体力消耗从小到大排序),算出剩余的子弹数即可。
E 安全路径
这题我只能说,最重要的看清楚题目的条件,最重要的一句话就是最短路径是唯一的,这就表明是一棵树,我们把最短路径树造出来也就容易解了。对于一个点
i
,根到