非人类题目训练合集/感觉有必要记录下来的一些套路

ptz23s d6/ucup2r4 G

什么时候能想起点-边!!!!!!

AGC063E

很厉害的题啊!

Sol

fif_i 表示 ii 上传多少个,那么只要数多少序列满足 fi<ai+rfa(v)=ifvf_i<a_i+r\sum\limits_{fa(v)=i} f_v

fi0\sum f_i^0 就是方案数。注意到 fi0\sum f_i^0 看上去和 fv1\sum f_v^1 有关,于是设置状态 F(i,j)=fijF(i,j)=\sum f_i^j 就能转移了。

某场牛客的一个题

Sol

熔池一下下界,然后处理一下使得每个数下界变 00

WTF22 day1 D

Sol

这个东西一眼凸,所以先 wqs 二分。

转化为选择一个点的代价为 cc,考虑 xix_i 代表第 ii 个点是否选择,djd_j 代表第 jj 个区间是否包含了一个被选择的点,ej=1dje_j=1-d_j。最大价值就是 mmin{ci=1nxi+j=1mej}m-\min\{c\sum\limits_{i=1}^nx_i+\sum\limits_{j=1}^me_j\}

那么有:

  1. ej+i=LjRj1e_j+\sum\limits_{i=L_j}^{R_j}\ge 1
  2. xi,ej0x_i,e_j\ge 0

对偶之后得到 min 里面那堆东西的最小值等于:选出若干区间,使得每个位置被覆盖次数 c\le c,能选出的最大区间数。

于是可以枚举 cc,每次贪心选出 rr 最小的合法区间。

懒得想怎么写代码所以实现了一个 log2log^2 做法。

AGC060F

Sol

det(ABCT)=det(A)det(ICTA1B)\det(A-BC^T)=\det(A)\det(I-C^TA^{-1}B)

显然要矩阵树,于是构造两个矩阵 B,CB,C 使得 BCT=GBC^T=G。构造方法是点减边

CF1864H

Sol

做过 loj 那个题最后也没切。

学了杜老师的做法,很牛啊。

f(n2k)f(\lfloor n2^{-k}\rfloor) 弄到一个矩阵里,转移只与 lowbit(n)\operatorname{lowbit}(n) 相关。O(log4n+tlog3n)O(\log^4n+t\log^3 n)

ptzs23d5b

Sol

根据相关规定,本内容不予显示。