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\)

  1. 一道组合数学的套路题。
  2. 由于这个题做过低级版,所以最开始思路错了,想着 \(DFS\)
  3. 后来仔细想想发现分成的数相同就是等效的(1,1,3和1,3,1为相同方案),而每个1也是等效的,那我们就可以把问题转化成** \(n\) 个相同的球扔进 \(n\) 个相同的盒子里,可空**。
  4. 再转化成\(n\) 个相同的球扔进k, 1<=k<=n 个相同的盒子里,非空的方案数和
  5. 而因为球和盒子都等效,那么我们不同方案当且仅当有盒子内球的数量不同。
  6. 那么,当 \(i\ge k\) 时,有 \(f[i][k]=f[i-1][k-1]+f[i-k][k]\) (要么是新开一个盒子(其他盒子都至少有1),或者所有盒子内球数量都+1(只有一个位置+1不能表示出按数量排序))。
  7. 初始化 \(f[0][0]=1\)
  8. 但是这道题内存开不下····必须滚掉一维。

B 反素数 \(\blacktriangle\)

  1. 一道看似数学,实则搜索。
  2. 从层数来看,最多32层,从个数来说,最多13个元素(13个不重复的质数相乘就已经超过范围了),非常适合乱搞

C 越狱 \(\blacktriangle\)

  1. 第一眼:woc组合数学。
  2. 第二眼:woc容斥。
  3. 第三眼:woc水题。
  4. 我们考虑没人能越狱的情况,那么除了第一个人的情况有m种,其他人必须与前面宗教不同,有m-1种,那么答案就是 \(m(m^{n-1}-{(m-1)}^{n-1})\) ,快速幂算就完事了。

D 佳佳的 Fibonacci \(\blacktriangle\!\blacktriangledown\)

  1. 看到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\)

  1. 其实好多带 \(Tarjan\) 的题都蛮板的,不过好多都是紫题···,这道题不过多带了个奇奇怪怪的组合数···。
  2. 一个点走不了安全通道,要么是没有儿子,要么就是儿子走不到安全通道,要么是没有安全通道(或者炸掉了)。
  3. 而由于是无向图,显然只要连通就一定能走到,换句话说走不到是因为不连通
  4. 那什么点炸掉会导致不连通?割点
  5. 由于只炸掉一个割点,所以如果不走割点的一个连通块连着大于1的割点数目,可以不用设安全通道;有1个割点的连通块必须设立安全通道,位置只要不是割点就行;没有割点的连通块,显然是个强连通,只要设两个安全通道即可(当然,单独的点只用一个)

image
\(\cal {Made} \ {by} \ {YuGe}\)

posted @ 2021-09-26 20:44  u2003  阅读(51)  评论(0)    收藏  举报