#22 2024.4.28
817. loj4143 「CCO 2019」Sirtet
818. loj3364 「IOI2020」植物比较
819. loj3367 「IOI2020」装饼干
820. loj3389 「NOIP2020」微信步数
?
计算第 \(kn + i\) 步还没死的人的个数。每一维是个一次函数,卷起来是个 \(k\) 次函数,前缀和是 \(k+1\) 次函数。做完了???
821. uoj569 【IOI2020】Stations
822. loj3830 「IOI2022」鲶鱼塘
想一想,发现 \(x> y < z,y> 0\) 这种情况是不存在的,因为可以是 \(x,0,z\)。
所以一定是单峰和 0 交替。
那就设 \(f_{i,j}\) 表示 \(a_{i-1} < a_i = j\),\(g_{i,j}\) 表示 \(a_{i-1} > a_i = j\),转移好算。
823. loj3831 「IOI2022」囚徒挑战
考虑一个最暴力的东西:\(b\) 进制,存一个二元组 \((x,y)\),表示这是 \(b\) 进制第 \(x\) 位,某个数的值是 \(y\)。查询的时候看另外一个数,然后递归到 \((x-1,z)\)。至于到底看哪个数,可以在外面记。
注意到我们可以干这么一个事情。建立一个树形结构,每个节点是 \([L,R]\)。假设它的深度为 \(d\)。它有 \(a_d\) 个子节点,它们长度相等且不交,拼成了 \([L+1,R-1]\) 这个段。于是我们只需要记录 \(([L,R],sonid)\) 这个二元组就行了。进一步地,我们可以让同一层长得一样,所以我们只需要记 \((d,sonid)\) 这个二元组。关于 \(a\) 随便 dp 一下就能卡进去。
824. xsy5435 图修改(graph)
825. xsy5436 序列计数(sequence)
826. xsy5437 黑白路径(path)
827. loj3832 「IOI2022」无线电信号塔
十分感谢这个题,特别奇妙。