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

有一个式子:

\[\sum_{i=1}^n a_i=\sum_{i=1}^n(\sum_{l=1}^{\inf} [l\le a_i])=\sum_{l=1}^{\inf}(\sum_{i=1}^n [l\le a_i]) \]

\(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.小猪佩奇学数学

单位根反演,没学。

posted @ 2025-12-13 17:11  wangsiqi2010916  阅读(9)  评论(0)    收藏  举报