math
求
gcd ( q a − 1 , q b − 1 ) m o d p \gcd(q^a-1,q^b-1) \bmod p gcd(qa−1,qb−1)modp
答案是
q gcd ( a , b ) − 1 m o d p q^{\gcd(a,b)}-1 \bmod p qgcd(a,b)−1modp
candy
给定 a 1 ∼ a n a_1 \sim a_n a1∼an 和 b 1 ∼ b n b_1 \sim b_n b1∼bn,第 i i i 次选择最小的能被 a i a_i ai 整除的 b i b_i bi 删除,求能删多少次和删了哪些数。
这个直接暴力加上当前弧优化是调和级数 n 1 + n 2 + n 3 + ⋯ + 1 ≈ n log n \frac{n}{1} + \frac{n}{2} + \frac{n}{3}+\cdots+1 \approx n\log n 1n+2n+3n+⋯+1≈nlogn。
lagrange
拆拆括号能求出拉格朗日恒等式
( ∑ a i 2 ) ( ∑ b i 2 ) = ( ∑ a i b i ) 2 + ∑ 1 ≤ i < j ≤ n ( a i b j − a j b i ) 2 \left(\sum a_{i}^{2}\right)\left(\sum b_{i}^{2}\right)=\left(\sum a_{i} b_{i}\right)^{2}+\sum_{1 \leq i<j \leq n}\left(a_{i} b_{j}-a_{j} b_{i}\right)^{2} (∑ai2)(∑bi2)=(∑aibi)2+1≤i<j≤n∑(aibj−ajbi)2
直接上三棵线段树,别用 cout 因为会变成 40 分。