0914-
CTT2019
D3T2
环,每次选择 i 执行 ai−1−=ai;ai+1−=ai;ai=−ai。求全非负要多少步操作。
100000。
sol
嗯!
一眼交换前缀和,直接上无限序列,则环上一对 i,j 的贡献好算。ds 优化。
D4T3
给数组 a,b 和常数 x,y,建立一个 a,b 的匹配使得在 a≤b≤a+x 的基础上最大化 a≤b≤a+y 的对数。
500000。
sol
嗯!
排序后从小到大贪心,维护 b 的指针 nw。如果 bnw≤ai+y 直接匹配,否则扔进待定队列。
但是贪心过程中要保证待定队列里的东西仍然有合法匹配!数据结构维护一下即可。
0708
Umnik mod 998 244 353 Contest
K.4
数四元环,模板。
sol
边定向,小度连大度,这样 deg≤m 的点出边不超过 m,度数大的点后面至多 O(m) 个点,所以每个点出度不超过 O(m)。
接下来对于每个点 x 找出 x 往后的三元环,枚举一条边再枚举一条边。如果 (x,a,b) 是三元环那么连边 (a,b),在新图用 bitset 数新图的三元环,就是从 x 开始的 K4。复杂度可以看成每个点至多连出去 O(m) 边所以 bitset 只要开这么大。原图三元环数目 O(mm) 级别,每条边 bitset 操作,复杂度是 wm2。太厉害了!
L.5
n 个自然数和为 S,其中至少 0.2S 个是 1,求 (k,T) 数量使得存在大小为 k 的子集和为 T。
sol
先忽略 0 对
0613
CTT2020
D1T1
sol
注意到一条路我来回走 k 次对答案没有影响,这个意思就是我可以满图跑,随便选条边走两次或者找个环跑一遍。
然后就变成了 k 进制线性基下面求最小 xor 了。要注意下这个东西的写法(和 k 的 gcd 之类的东西)。
复杂度好像是 O(nlognlogk)?
0612 更新
sdoi::
。
D1T1
shaber 题
D1T2
谁想得到啊?
D1T3
线性代数在 oi 中没有应用。
CTT2018
感觉自己太嘴巴了,得写代码了
打*的还没写
D1T2*
给定序列 a 求多少序列 b,d 满足 di∣bi,bi∣ai,∏d2>∏b。
。
sol:对称的,后面忘了
D1T3
求一棵树有多少点分树。不一定需要选重心,5000。
sol:鸽
D2T1*
树,带修,求子树内深度 [0,L] 每层的 sum 的 xor。
。
sol:长剖,根号重构
D2T2
问有多少 (S,C) 使得 S≤s,C≤c,存在若干不交整边长矩形,边长之和 C,面积之和 B。
sol
- 下文 c 为题面中的 ⌊2c⌋,周长为短边和长边之和。
- 短边边长不超过 s
- 添加 1×1 的矩形你会发现 2S−C 不变。
所以令 fi 为 2S−C=i 时的最小 C,然后依次枚举短边长度,维护一个 dp:
- 添加一个 i×i 的矩形:fx−2i2+2i+2i→dpx
- 延长一个矩形,dpx−2i+1+1→dpx
- 更新 f
然后答案很好算。复杂度 ss。
D2T3*
板
D3T3
一棵树,一个区间的权值是 s 并上 [l,r] 内所有点的虚树边权。把 [1,n] 裂 k 个区间,权值和最小。nk≤2×105。
sol
分层 dp,大胆猜测决策有单调性!暴力移动端点。