杂题选做 2026 Oct

P3338

考虑翻转序列以凑成卷积的形式,然后 FFT 做。

P9407

神仙题。考虑

\[\int_0^{\pi}l\lvert\cos\theta\rvert d\theta = 2l \]

也就是说,每条线段在直线 \(y=\tan\theta\) 上的投影长度在 \(\theta\in[0,\pi]\) 上的定积分为 \(2l\)。于是考虑均匀取样若干角度映射为一维问题近似求出答案,这个操作被称为黎曼和。

P5491

二次剩余模版。

  1. 对于奇素数 \(p\),二次剩余 \(n\) 的数量恰为 \(\frac{p-1}{2}\) 个,非零非二次剩余的数量也恰为 \(\frac{p-1}{2}\) 个。

  2. \(a^{\frac{p-1}{2}}\equiv 1\Longleftrightarrow n\) 是二次剩余

假如我们要找 \(n\) 的二次剩余,那么我们随机检验找到一个 \(a\) 使得 \(a^2-n\) 是非二次剩余。类比于虚数单位,定义 \(i^2\equiv a^2-n\),随后有结论:

\(\pm(a+i)^{\frac{p+1}{2}}\) 是 \(n\) 的二次剩余。

证明:\((a+i)^{p+1}\equiv(a+i)(a^p+i^p)\equiv(a+i)(a-i)\equiv n\)。

P15649

设 \(dp_{i,j}\) 表示点 \(i\) 向下延申重链长度为 \(j\) 的概率,枚举儿子及其重链长度,会发现这就是背包转移,每次统计节点答案需要可撤销背包,也就是多项式除法,最低位不一定非 \(0\) 那就平移一下。

P3307

第一步自然是莫反,

\[\sum_{i=1}^a\sum_{j=i}^a\sum_{k=j}^a[\gcd(i,j,k)=1]=\sum_{d=1}^{a}\mu(d)\frac{\lfloor\frac{a}{d}\rfloor(\lfloor\frac{a}{d}\rfloor+1)(\lfloor\frac{a}{d}\rfloor+2)}{6} \]

第二步就是 Burnside 引理,轨道大小等于群内元素不动点平均数,也就是 \(\frac{1}{n}\sum_{i=1}^nf(\gcd(n,i))\),即 \(\frac{1}{n}\sum_{d\mid n}f(d)\varphi({\frac{n}{d}})\)。

考虑这个 f 怎么算。\(x\mid n\) 时,\(f(x)\) 的含义是“染 \(m\) 种颜色且相邻不同色的长度为 \(x\) 的环的数量”(不考虑旋转)。分类讨论 \(1\) 和 \(x-1\) 的颜色是否相同:相同贡献为 \((m-1)f(x-2)\),不相同贡献为 \((m-2)f(x-1)\)。于是得到转移方程 \(f(x)=(m-2)f(x-1)+(m-1)f(x-2)\)。显然 \(f(1)=0,f(2)=m(m-1)\)。

解常系数齐次线性递推:

  1. 写特征方程;
  2. 求特征根;
  3. 不同根写

    \[C_1r_1^n+C_2r_2^n+\cdots; \]

  4. 重根要乘多项式,例如二重根写

    \[(C_1+C_2n)r^n; \]

  5. 用初值确定常数。

对于此题,特征方程:\(r^2=(m-2)r+(m-1)\)

特征根:\(r_1=m-1,r_2=-1\)

设通项公式为 \(f(x)=A(m-1)^x+B(-1)^x\)

代入初始值得 \(f(1)=A(m-1)-B=0,f(2)=A(m-1)^2+B=m(m-1)\)

解得 \(A=1,B=m-1\)。于是通项公式为 \(f(x)=(m-1)^x+(m-1)(-1)^x\)。

注意了,还有 \((10^9+7)\mid n\) 的情况,要把 \(mod\) 变成 \((10^9+7)^2\),这样 \(mod\nmid n\)。

最后先把答案除以 \((10^9+7)\)(因为答案如果不除以 \(n\) 一定是 \(n\) 的倍数),再除以 \(\frac{n}{10^9+7}\) 对于 \(10^9+7\) 的逆元。

P9537

P7843

区间 2-SAT,注意到是无向边,那么用并查集就能维护。考虑到对称性,每次加边任选一个端点与其对应反点判断连通性即可。然后注意到每次肯定选择向右跳最远,而且显然有决策单调性,于是考虑决策单调性分治预处理,查询时倍增。分治时有个 trick,每次进入区间时保证 \((r,L)\) 已经加入并查集,不重复加可以保证复杂度。用可撤销并查集维护,时间复杂度 \(O(m\log m\log n+q\log m)\)。

P17570

P11428

P11406

神秘卡空题,考虑十六进制倍增即可。

P17316

QOJ964

神仙题。转化为 \(\max\{i\mid\sum_{j=l}^r[a_j\le i]>i\}\),这属于“不好维护答案但容易检验”的查询,可以考虑两种方式:整体二分和按序检验答案,这里考虑后一种。注意到对于 \(l\le l_1\le r_1\le r\),有 \(ans_{l_1,r_1}\le ans_{l,r}\),于是考虑从大到小扫答案,维护极大无包含区间集合。实现时使用线段树维护,询问按 \(r\) 挂在树上,用栈维护,栈顶 \(l\) 最小,同时维护 set 用来求当前活跃询问的前驱后继,删除后不断找出 \(r\in(r_1,r_2)\) 内左端点最小中右端点最大的加入。

posted @ 2026-10-29 08:28  leo120306  阅读(7)  评论(0)    收藏  举报