2021.09.26pm
9.26PM
|---|预期|实际|
|A|100|0|
|B|100|100|
|C|100|100|
|D|100|100|
|E|0|0|
|S|400|300|
可能水,一定菜
A 自然数拆分 \(\blacktriangle\)
- 一道组合数学的套路题。
- 由于这个题做过低级版,所以最开始思路错了,想着 \(DFS\) 。
- 后来仔细想想发现分成的数相同就是等效的(1,1,3和1,3,1为相同方案),而每个1也是等效的,那我们就可以把问题转化成** \(n\) 个相同的球扔进 \(n\) 个相同的盒子里,可空**。
- 再转化成\(n\) 个相同的球扔进k, 1<=k<=n 个相同的盒子里,非空的方案数和。
- 而因为球和盒子都等效,那么我们不同方案当且仅当有盒子内球的数量不同。
- 那么,当 \(i\ge k\) 时,有 \(f[i][k]=f[i-1][k-1]+f[i-k][k]\) (要么是新开一个盒子(其他盒子都至少有1),或者所有盒子内球数量都+1(只有一个位置+1不能表示出按数量排序))。
- 初始化 \(f[0][0]=1\) 。
- 但是这道题内存开不下····必须滚掉一维。
B 反素数 \(\blacktriangle\)
- 一道看似数学,实则搜索。
- 从层数来看,最多32层,从个数来说,最多13个元素(13个不重复的质数相乘就已经超过范围了),
非常适合乱搞。
C 越狱 \(\blacktriangle\)
- 第一眼:woc组合数学。
- 第二眼:woc容斥。
- 第三眼:woc水题。
- 我们考虑没人能越狱的情况,那么除了第一个人的情况有m种,其他人必须与前面宗教不同,有m-1种,那么答案就是 \(m(m^{n-1}-{(m-1)}^{n-1})\) ,快速幂算就完事了。
D 佳佳的 Fibonacci \(\blacktriangle\!\blacktriangledown\)
- 看到Fibonacci,便知道要矩阵快速幂。但这是次要的,更重要的是推公式。
\[\begin{aligned}
F_i & =F_{i-1}+F_{i-2} \\
S_i & =\sum_{j=1}^i F_j\\
T_i & =\sum_{j=1}^i S_j*j\\
\end{aligned}
\]
\[\begin{aligned}
S_{2*i}&= \sum_{j=1}^{2*i} F_j\\
&=F_1+F_2+F_3+···+F_{2*i-1}+F_{2*i}\\
&=F_3+F_3+F_4+···+F_{2*i-1}+F_{2*i}\\
&=F_3+F_5+···+F_{2*i-1}+F_{2*i+1}\\
&=F_2+F_3+F_5+···+F_{2*i-1}+F_{2*i+1}-F_2\\
&=F_{2*i+2}-F_2\\
\\
S_{2*i+1} &= S_{2*i}+F_{2*i+1} \\
&= F_{2*i+3}-F_2\\
\\
S_{i} & = F_{i+2}-F_2\\
&= F_{i+2}-1\\
\end{aligned}
\]
\[\begin{aligned}
T_i& = i*S_i-S_{i-1}-S_{i-2}-···-S_1\\
& = i*(F_{i+2}-1)+i-\sum_{j=3}^{i+1}F_{i+1}\\
& = i*F_{i+2}-F_{i+3}+F_{1}+F_{2}\\
& = i*F_{i+2}-F_{i+3}+2\\
\end{aligned}
\]
E [HNOI2012]矿场搭建 \(\blacktriangle\!\blacktriangledown\)
- 其实好多带 \(Tarjan\) 的题都蛮板的,不过好多都是紫题···,这道题不过多带了个奇奇怪怪的组合数···。
- 一个点走不了安全通道,要么是没有儿子,要么就是儿子走不到安全通道,要么是没有安全通道(或者炸掉了)。
- 而由于是无向图,显然只要连通就一定能走到,换句话说走不到是因为不连通。
- 那什么点炸掉会导致不连通?割点。
- 由于只炸掉一个割点,所以如果不走割点的一个连通块连着大于1的割点数目,可以不用设安全通道;有1个割点的连通块必须设立安全通道,位置只要不是割点就行;没有割点的连通块,显然是个强连通,只要设两个安全通道即可(当然,单独的点只用一个)

\(\cal {Made} \ {by} \ {YuGe}\)
浙公网安备 33010602011771号