BJ集训-数学
A.Sets Scores
对称差相当于异或,也就是每两个之间有且仅有一个元素的出现情况发生变化。
将出现情况变化的位置称为端点,但是头尾的端点数量没有限制。
强制要求端点从左到右两两配对,这样端点和出现区间一一对应。
所以可以发现,通过头尾是否有端点,对每个选择情况会产生两种结果,且和恰好为 n
所以对于中间端点每种分配情况,答案都为 \(n^m\),分配数为 \(m^{n-1}\)
B.Frightful Formula
难点在于 c,考虑每个位置的 c 对答案的贡献,显然是走到 \((n,n)\) 的方案书再乘上对应贡献。
\(\sum_{i=2}^n\sum_{j=2}^n C_{2n-i-j}^{n-j} a^{n-i}b^{n-j}\)
固定 \(i+j\) 可以发现一部分可以用二项式定理直接求,剩下的记 \(i+j=x\),每个 x 的贡献为 \(f(x)\)。
剩下部分考虑在网格图上的意义:
此时和 +1,相当于多走一步,可以向下或向右走一步,也就是 \((a+b)f(x-1)\)
可以发现可能会走超过 n 步的同一个方向,减去就好。
C.Priority Queue 2
有一个式子:
令 \(c=\sum_{l\le a_i}\)
根据加入或删除的数可以发现如下变化:
插入 \(>l\) 的数时 \(c=c+1\),否则不变,删除 \(c\ge n-l+1\) 此时必然第 \(l\) 小的数 \(\ge l\) 则 \(c=c-1\),否则不变。
然后可以枚举有多少个数使得 c+1,然后就能推得最终值。
补充一个 trick:对于一些集合问题,可以按照是否大于一个数 x 转化为 01 集合减少状态。
D.Vladislav and a Great Legend
讲题人用泰勒展开推斯特林数,听不懂。
第二类斯特林数:将 n 个数划分成 m 个集合,记为 \(S(n,m)\)。
分为两种情况:\(S(n-1,m-1)\) 单开一个集合。
\(S(n-1,m-1)*m\) 任意放一个。
所以: \(S(n,m)=S(n-1,m-1)+S(n-1,m-1)*m\)
E.随机立方体
先钦定 \((1,1,1),(2,2,2),\dots (k,k,k)\) 极大,同时 \((1,1,1)>(2,2,2)>\dots>(k,k,k)\)。
先考虑 \(k\),任意一维为 k 的数都不能比它大,将这些点记为 \(s_k\)。
此时再考虑 \(k-1\) 要求有一维为 \(k-1\) 且没有一维为 \(k\)
然后就转成了一个拓扑序问题,不会了
F.基础寄术练习题
G.Lamps and Buttons
假设最小的自环位置为 t 那么 \(a+1\) 到 \(n\) 所在环必然存在一个点小于 t。
H.Again Counting Arrays (Easy Version)
考虑什么情况一定会死,因为 \(b_i\ge 0\),所以当前如果值为 0,那么下一步只有去 1。
所以如果此时 \(a_i=0\),那么就没有解了,所以最优策略一定是能加则加,此时 a,b 一一对应。
容易想到 \(n^2\) dp,就是 \(f_{i,j}\) 表示第 i 步为 j 的方案数。
当 \(b_i=m\) 时,那么必然存在解,正难则反,考虑多少不满足。
此时可以看作从 \(b_0\) 出发,要求要碰到 \(-1\) 且不碰到 \(m\)
可以枚举第一个碰到 -1 的位置为 t,
考虑将最后一次碰线的位置进行对称,不会了。
I.Again Counting Arrays (Hard Version)
J.小猪佩奇学数学
单位根反演,没学。

浙公网安备 33010602011771号