2022.11.23
今天被组的题撅爆力(悲)
P5390
交了个暴力爆零力。
后来才发现在暴力前打的正解假了一部分。
我们把每一位拆开来讨论然后排列组合一下就好了。
然后我们会发现我们需要求 \(n\) 个 \(1\) 中选奇数个数的 \(1\) 的方案数。
让我们来干一件事:求一下 选奇数个数的 \(1\) 的方案数 与 选偶数个数的 \(1\) 的方案数 的差。
也就是这个:
\[\large\sum_{i=0}^{n}(-1)^iC_n^i
\]
这是偶数减奇数的情况。
然后让我们掏出一个东西。
\(\left\lceil \text{二项式定理} \right\rfloor\)
它长这样:
\[\large(a+b)^n = \sum_{i=0}^n C_n^ia^{n-i}b^{i}
\]
那么非常好,我们让 \(a=1,b=-1\),就是上面的差值了。
所以 \(\sum_{i=0}^{n}(-1)^iC_n^i=(1-1)^n=0\)。
所以 \(n\) 个 \(1\) 里选奇数个数的 \(1\) 的方案数就是 \(2^{n-1}\)。
于是就完事了。
P1269
就硬贪,但一定要从下往上贪。
考虑一种情况:
懒得挂图了,直接挂 Hack 数据吧
6
1 2 1
3 1 1 3 2 4 2
2 2 2 5 1
2 2 2 6 1
1 3 1
1 4 1
4
P1539
就是最普通的状压,属于恶评,不可能是紫的,虽然我调了很久。
P1814
我认为这是道搜索好题,它融合了搜索和组合数学,让我复习了一下卡特兰数。
CF432D
Z 函数练习题,我 get 到一个求所有前缀在字符串中出现次数的方法,同时也有了一个判断某子串是否同时是前缀和后缀的小 trick:z[i] + i == len
。