NOI模拟赛 4.25

赛时时间分配

约10min读完+初步思考三道题

约25min完成T1

约40min思考T2+完成T2的30pts暴力,继续思考十几分钟未果

约30min思考T3+完成T3的16pts暴力,发现答案似乎存在一些规律,最终T3用2h左右打出

T1:抛硬币coin

题意

抛硬币,正面向上的概率为\(p\),求第一次出现连续\(k\)次正面向上的期望步数。

题解

比较经典的期望问题,赛时用时约20min。

\[E_k=p(E_{k-1}+1)+(1-p)(E_{k-1}+1+E_k)\\ E_k=\frac{1}{p}(E_{k-1}+1)\\ E_k+a=\frac{1}{p}(E_{k-1}+a),a=\frac{1}{1-p}\\ E_k=a\frac{1}{p^k}-a \]

Tips

赛时丢失了对\(p=1\)的特判。

T3:一堆数math

题意

1.PNG

\(3\leq L \leq 10^7,L<n<10^9+7,L\)为奇数。

题解

赛时用时\(2h+\),通过打表找规律做出。

通过打表找规律发现答案序列一定含以下这个子序列(以\(L=7\)为例):

\[7,3,3,2,2,1,1 \]

其中第一项为\(L\),第二三项为\(\lfloor\frac{L}{2}\rfloor\),其余以两项为一组递减。

由于相邻相同的数字只有前两项会有贡献,因此:

第一问答案为等差数列求和

\[(1+\lfloor\frac{L}{2}\rfloor)\times (\lfloor\frac{L}{2}\rfloor)+L\times (L-\lfloor\frac{L}{2}\rfloor) \]

第二问答案为隔板法(剩余位置可随便放)

\[\binom{n-L+\lfloor\frac{L}{2}\rfloor-1}{\lfloor\frac{L}{2}\rfloor-1} \]

Tips

官方题解的数学证明,放缩的方法非常少见...

2.PNG

T2:技能树tree

题意

3.PNG

\(n,q\leq10^6\)

题解

赛时只完成了\(30pts\)部分分:考虑倒着从叶子节点开始按深度染色,用时约\(1h\),实际上\(40pts\)的部分分也比较好做:顺次删除所有有儿子的节点即可。

考虑构造一种方案:先用\(j\)次染完前\(j\)层的节点,之后除最后一步外每一步都染恰好\(k\)个位置。由于每一次的贡献最大为一层/\(k\)个,这样构造出来的次数一定最小的。

此时答案即为\(j+\lceil \frac{s_j}{i}\rceil\)(\(s_j\)表示深度\(>i\)的节点个数)。

下面证明方程\(f_i=\max\{j+\frac{s_j}{i}\}\)(注意不带取整符号)的决策点\(j\)即为上面答案中的\(j\)

(1)证明决策点\(j\)一定为合法方案。

设深度为\(i\)的节点个数为\(C_i\)

首先证明可以用\(j\)次染完前\(j\)层的节点:

\(f_i>f_{i-1}\)\(k\geq C_j\),则倒着染第\(j\)层时用一次可以染完它,甚至可以富裕一些染色次数留给上面。

\(f_i>f_{i-2}\)\(2k\geq C_j+C_{j-1}\),则倒着染时可以用两次染完第\(j-1、j\)层,由此归纳可以证明可以用\(j\)次染完前\(j\)层的节点。

之后证明除最后一步外每一步都可以染恰好\(k\)个位置:

\(f_i>f_{i+1}\)\(k\leq C_{j+1}\),则第\(k+1\)次操作可以染恰好\(k\)个格子,随后用类似上面的方法可归纳证明。

(2)证明其余次数作为决策点时不可以:利用上面得出的式子可以直接证明。

Tips

对于贪心的部分分,可以进一步思考降低复杂度后贪心的正确性是否仍然可以保证。

posted @ 2021-04-25 20:04  Robert_JYH  阅读(119)  评论(0编辑  收藏  举报