比赛地址:2024寒假训练赛1
A 煎饼
分类讨论, 的情况和 的情况。
- 时,无论怎么放,都要煎一面,再煎另一面,不能拆开煎,所以是两分钟。
- 时,偶数可以拆成 的形式,奇数可以拆成 + 的形式,具体请看样例解释。
B 小推车
对于每一行,有弃车和不弃车两种策略。
- 如果弃车,而且后面还有僵尸的话,需要补种豌豆射手。
在 处弃车的代价是,区间[1,x-1]中的最大值和区间[x+1,n]中的最大值的和。 - 如果不弃车,代价是区间[1,n]中的最大值。
在两种策略中,选择一个最小值。
弃车策略中,我们可以维护前缀最大值和后缀最大值,这样就不需要再用循环求出区间最大值了。
B题代码
C 筹码博弈
D 倍投法则
令 为每局胜率, 为每局负率,为累计概率(在输了若干次之后的)
每次的贡献就是:累计投入资金
累计投入资金是 的前缀和,但是懂数论的话,这个前缀和就是
每次更新累计概率
大概循环 次,期望的变化不会超过 ,输出就好了。
D题代码
E 动态序列
使用树状数组,然后以二进制枚举的方式,在树状数组上面二分。
std的复杂度为 ,但是本题没有卡 ,所以写出平衡树,或者二分套树状数组query也可以过。
E题代码
F 202树
阅读题意,可知除了根节点,其他节点有且仅有一个兄弟节点。
所以只有 是奇数时,才能构造出 202树。
为了实现最大深度,可以使每层的宽度为
根节点深度为 ,所以看后面有多少个 就好了。
F题代码
——————————————————
感谢同学们的积极参与!