下午刚打一场校赛,写完题解就灰头土脸的来打周赛了。
依旧
A. Nowcoder Weekly Contest
饿昏了,开局就唐了
直接比较是否小于等于 ,是就 Rated,反之 Unrated。
B. ICPC Medal
设最终能额外合成的金牌数为 ,答案就是
。
要合成 个金牌,一共需要
个银牌。初始有
个银牌,所以还缺:
这些“缺的银牌”只能由铜牌合成,每个银牌需要 个铜牌。
在合成这 个金牌的过程中,最多能提前利用的掉落铜牌是
个(最后一次掉落已经来不及再参与当前这批
个金牌的构造)。
所以最多能补出的银牌数是:
可行条件为:
这个条件对 单调,因此二分最大可行
即可。
C. Unique Number
前缀加一操作决定了最终序列 一定满足:
目标是最大化不同数的个数。
把问题等价化之后,可以转成:构造一个“从右往左每次最多 +1”的非增序列,并满足上界。
先记前缀最小值:
然后从右往左贪心:
最终不同数个数就是:
整体复杂度 。
D. Balanced Array
平衡子数组条件是:
用双指针维护窗口 ,并用两个单调队列维护当前窗口最大值和最小值:
- 递减队列维护最大值下标;
- 递增队列维护最小值下标。
每次扩右端点后,如果不满足条件,就右移 并弹掉过期下标,直到重新合法。
此时以 结尾的合法子数组个数是:
累加即可。总复杂度 。
E. Maximize The Sum
操作定义为:
把三位二进制状态分类看:
- 其余 6 种都会变成“两个 1、一个 0”
因此结论是:
- 若初始全 0,答案是
;
- 若初始全 1,不操作最优,答案是
;
- 其他情况(既有 0 又有 1):
- 全 1 不可达;
- 但可以做到恰好只剩一个 0,所以最大和为
。
所以答案只和 1 的总数有关:
- 否则
F. Palindromic Value
先预处理回文:
然后做 DP:
:前
个字符的回文划分方案数
:前
个字符所有划分方案价值和
若最后一段是 (且它是回文),长度为
,则:
初始 ,答案是
。
复杂度:
- 回文预处理
- DP 转移

京公网安备 11010502036488号