QOJ

0914-

CTT2019

D3T2

环,每次选择 ii 执行 ai1=ai;ai+1=ai;ai=aia_{i-1}-=a_i;a_{i+1}-=a_i;a_i=-a_i。求全非负要多少步操作。

100000100000

sol

嗯!

一眼交换前缀和,直接上无限序列,则环上一对 i,ji,j 的贡献好算。ds 优化。

D4T3

给数组 a,ba,b 和常数 x,yx,y,建立一个 a,ba,b 的匹配使得在 aba+xa\le b\le a+x 的基础上最大化 aba+ya\le b\le a+y 的对数。

500000500000

sol

嗯!

排序后从小到大贪心,维护 bb 的指针 nwnw。如果 bnwai+yb_{nw}\le a_i+y 直接匹配,否则扔进待定队列。

但是贪心过程中要保证待定队列里的东西仍然有合法匹配!数据结构维护一下即可。

0708

Umnik mod 998 244 353 Contest

K.4

数四元环,模板。

sol

边定向,小度连大度,这样 degmdeg\le \sqrt m 的点出边不超过 m\sqrt m,度数大的点后面至多 O(m)O(\sqrt m) 个点,所以每个点出度不超过 O(m)O(\sqrt m)

接下来对于每个点 xx 找出 xx 往后的三元环,枚举一条边再枚举一条边。如果 (x,a,b)(x,a,b) 是三元环那么连边 (a,b)(a,b),在新图用 bitset 数新图的三元环,就是从 xx 开始的 K4K_4。复杂度可以看成每个点至多连出去 O(m)O(\sqrt m) 边所以 bitset 只要开这么大。原图三元环数目 O(mm)O(m\sqrt m) 级别,每条边 bitset 操作,复杂度是 m2w\frac {m^2} w。太厉害了!

L.5

nn 个自然数和为 SS,其中至少 0.2S0.2S 个是 11,求 (k,T)(k,T) 数量使得存在大小为 kk 的子集和为 TT

sol

先忽略 00

0613

CTT2020

D1T1

sol

注意到一条路我来回走 kk 次对答案没有影响,这个意思就是我可以满图跑,随便选条边走两次或者找个环跑一遍。

然后就变成了 kk 进制线性基下面求最小 xor 了。要注意下这个东西的写法(和 kk 的 gcd 之类的东西)。

复杂度好像是 O(nlognlogk)O(n\log n \log k)


0612 更新

sdoi::

D1T1

shaber 题

D1T2

谁想得到啊?

D1T3

线性代数在 oi 中没有应用。

CTT2018

感觉自己太嘴巴了,得写代码了

打*的还没写

D1T2*

给定序列 aa 求多少序列 b,db,d 满足 dibi,biai,d2>bd_i|b_i,b_i|a_i,\prod d^2>\prod b

sol:对称的,后面忘了

D1T3

求一棵树有多少点分树。不一定需要选重心,5000。

sol:鸽

D2T1*

树,带修,求子树内深度 [0,L][0,L] 每层的 sum 的 xor。

sol:长剖,根号重构

D2T2

问有多少 (S,C)(S,C) 使得 Ss,CcS\le s,C\le c,存在若干不交整边长矩形,边长之和 CC,面积之和 BB

sol
  1. 下文 cc 为题面中的 c2\lfloor \frac c 2\rfloor,周长为短边和长边之和。
  2. 短边边长不超过 s\sqrt s
  3. 添加 1×11\times 1 的矩形你会发现 2SC2S-C 不变。

所以令 fif_i2SC=i2S-C=i 时的最小 CC,然后依次枚举短边长度,维护一个 dp:

  1. 添加一个 i×ii\times i 的矩形:fx2i2+2i+2idpxf_{x-2i^2+2i}+2i\rightarrow dp_x
  2. 延长一个矩形,dpx2i+1+1dpxdp_{x-2i+1}+1\rightarrow dp_x
  3. 更新 ff

然后答案很好算。复杂度 sss\sqrt s

D2T3*

D3T3

一棵树,一个区间的权值是 ss 并上 [l,r][l,r] 内所有点的虚树边权。把 [1,n][1,n]kk 个区间,权值和最小。nk2×105nk\le 2\times 10^5

sol 分层 dp,大胆猜测决策有单调性!暴力移动端点。