P3338
考虑翻转序列以凑成卷积的形式,然后 FFT 做。
P9407
神仙题。考虑
也就是说,每条线段在直线 \(y=\tan\theta\) 上的投影长度在 \(\theta\in[0,\pi]\) 上的定积分为 \(2l\)。于是考虑均匀取样若干角度映射为一维问题近似求出答案,这个操作被称为黎曼和。
P5491
二次剩余模版。
-
对于奇素数 \(p\),二次剩余 \(n\) 的数量恰为 \(\frac{p-1}{2}\) 个,非零非二次剩余的数量也恰为 \(\frac{p-1}{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
第一步自然是莫反,
P9537
P7843
P17570
P11428
P11406
神秘卡空题,考虑十六进制倍增即可。
P17570
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)\) 内左端点最小中右端点最大的加入。