Magical Candy Store
不会将主动权让给对方
特殊讨论 111 的情况,剩余的贪心
Scalar Product Tree
我们通过记忆化,将复杂度降为点对个数
设每层的结点个数为 aia_iai,那么点对个数为 ∑min((ai2),q)\sum \min(\binom{a_i}{2},q)∑min((2ai),q)
分析得到复杂度为 O(nq)\mathcal{O}(n\sqrt q)O(nq)
Unusual Queries
考虑每个点向后面第一个比它大的连边,那么会建出一棵树
每个子树的编号是连续的一段 [l,r][l,r][l,r]
我们要做的就是求出深度减去第一次跳出去的深度的最大值
从 rrr 所在的子树往前跳若干段,这些段子树中每个点都可以取到
我们预处理出最大值然后倍增就可以了
那么只需要对最后一棵子树单独处理,用 ST\mathcal{ST}ST 表处理最大值就可以了
Chef and the Combination Lock
fif_ifi 表示需要 ≥i\ge i≥i 次操作的方案数
fi=∏max(0,aj+1−i×2)f_i=\prod \max (0,a_j+1-i\times 2)fi=∏max(0,aj+1−i×2)
找到 t=min(ai+1)/2t=\min (a_i+1)/2t=min(ai+1)/2
求 ∑i=1tfi\sum_{i=1}^t f_i∑i=1tfi
注意到 fif_ifi 是关于 iii 的 NNN 次多项式
我们只需求出其 N+2N+2N+2 个点值就可以插值出 ∑i=1tfi\sum_{i=1}^tf_i∑i=1tfi
上一个分治 NTT\mathcal{NTT}NTT 和一个多点求值就可以了
Panic! at the Disco
∑i=0NFa+i×d×Mi=∑i=0N15(φa+id−ϕa+id)Mi\sum_{i=0}^NF_{a+i\times d}\times M^i\\=\sum_{i=0}^N\frac{1}{\sqrt 5}(\varphi^{a+id}-\phi^{a+id})M^ii=0∑NFa+i×d×Mi=i=0∑N51(φa+id−ϕa+id)Mi
令 M:=φdMM:=\varphi^dMM:=φdM
我们可以在 O(K3logN)\mathcal{O}(K^3\log N)O(K3logN) 倍增解决
考虑 MMM 的特征多项式 f(λ)f(\lambda)f(λ)
我们只需要将 ∑i=0Nzi\sum_{i=0}^Nz^i∑i=0Nzi 对 f(z)f(z)f(z) 取模即可
于是就可以 O(K2logN+K4)\mathcal{O}(K^2\log N+K^4)O(K2logN+K4) 做
Hint\mathcal{Hint}Hint:555 没有二次剩余,需要维护 x+5yx+\sqrt 5yx+5y 的系数,慢慢写吧
Red-Black Boolean Expression
每个点有个选择的权值 ci≥0c_i\ge 0ci≥0
minimize:∑icizilimit:cu+cv≥1cu+c−u≤1minimize:\sum_i c_iz_i\\limit:c_u+c_v\ge 1\\c_u+c_{-u}\le 1minimize:i∑cizilimit:cu+cv≥1cu+c−u≤1
转对偶
maximize:∑ewe−∑utulimit:∀u,∑(u,v)∈Ewe−tu≤cumaximize:\sum_e w_e-\sum_ut_u\\limit:\forall u,\sum_{(u,v)\in E}w_e-t_u\le c_umaximize:e∑we−u∑tulimit:∀u,(u,v)∈E∑we−tu≤cu
若不考虑 cu+c−u≤1c_u+c_{-u}\le 1cu+c−u≤1 的限制,就是个最大流问题
现在就是要对每个点分配一个 tut_utu 使得最大流减去 ∑tu\sum t_u∑tu 最大
注意到增大 tut_utu 是不劣的,我们将其设为极大值跑最大流就可以了
Selecting Edges
将图随机映射成二分图
容易发现正确的概率为 12k\frac{1}{2^k}2k1
我们做 TTT 次正确的概率为 1−(2k−12k)T1-(\frac{2^k-1}{2^k})^T1−(2k2k−1)T
映射成二分图后跑一个费用流就可以了
复杂度 O(Tnmk)\mathcal{O}(Tnmk)O(Tnmk) 或 O(Tmklogn)\mathcal{O}(Tmk\log n)O(Tmklogn)