牛客周赛65题解
比赛地址:牛客周赛 Round 65
出题人:神崎兰子
A 超市
哪个便宜买哪个,all in 。
参考代码
B 雨幕
二重循环枚举,注意数组越界。
参考代码
C 闺蜜
按照最优策略,他们会轮流选择当前的最大元素。
如果小红拿了全局的最大值,那么小紫可以在双方都拿完之后,发动技能。
如果小红不拿,那么小紫不发动技能。
所以小红的元素总和无论如何都不会大于小紫。
当且仅当,全部元素相等时,小红和小紫平局。
其他时候,小紫赢。
参考代码
D 医生
使用 dfs 枚举全部的药品组合,对于同一种治疗效果,存它的最小代价。
对于每一个病人,枚举不同的治疗效果,选择能够完全治疗且代价最小的方案。
参考代码
E 降温(easy)
本题有 贪心 和 动态规划 做法。
考虑到 贪心 比较简洁,这里只介绍 贪心做法 ,详见于下面 题解。
动态规划 做法请参照视频题解。
参考代码
F 降温(hard)
本题有 贪心 和 动态规划 做法。
考虑到 贪心 比较简洁,这里只介绍 贪心做法 。
为气温数组构造两个版本 和
,
是取最大值的方案,
是取最小值的方案。
首先考虑第一天,如果温度未知 ,那么 尽可能大,
尽可能小。
随后 天,对于温度未知的情况,分类讨论。
对于最大的方案,看看当天是否能与昨天组成一次寒潮。
如果能,那么 ,否则,
尽可能大。
反正今天都组不成寒潮了,不如拉满温度,看看明天是否能满足条件。
对于最小的方案,看看当天是否不能与昨天组成一次寒潮。
只要和昨天温度作差,不达到 度,就不会形成寒潮。
并且,我们希望今天和明天也不会组成寒潮,所以这个差值越大越好。
计算每一天的情况,累加,得出答案。
参考代码
G 乌鸦
大力分类讨论。
考虑形如 或者
的基底,保证相差不超过
。
如果 ,那么连这个基底都凑不出来,输出
。
否则,对 分奇偶讨论。
1.当 是偶数时,
必须是偶数,不然多出来一个
没地方放。
令 ,然后基底整体加上
,相邻差值仍然不变。
如果还有剩 ,那么放置在小的位置上,每次消耗
。
2.当 是奇数时,构造不同的基底。
是奇数时,基底为
。
是偶数时,基底为
。
令 ,这时得判断一下剩下的是不是奇数
,如果是,
还得减去
。
基底整体加上 ,然后把剩下的放在小的位置上
。
有可能循环一遍还没完,再把剩下的放在新的小的位置上 。
参考代码
感谢阅读!