WC 2026 参赛资格备战记录
CSP 2025 炸了,意识到 CTT 再炸就没有 WC 玩了,很生气!
记录了日常训练中的一些题。
2025-11-03 洛谷 P10707 永恒(Eternity)
求出大小为 \(n\) 的可重集满足最大子集 \({\rm xor}=m\) 数量,\(n\le10^5,m<2^{60}\)。
把线性基最小化后对着最小化线性基数量以及维度对应可重集数量分别算一下就可以做到 \(\mathcal{O}(n\log m+\operatorname*{poly}(\log m))\) 了。
2025-11-03 QOJ 4885 Triangular Cactus Paths
给定一棵仙人掌,保证环长 \(\le 3\),\(q\) 次询问 \(x\to y\) 长度为 \(k\) 的简单路径数量,\(n,q\le2\times10^5\)。
随便圆方树算出最小距离和路径上三元环数量组合计数就好了,时间复杂度 \(\mathcal{O}(n+q)\)。
2025-11-03 QOJ 4883 Bayan Testing
给定 \(n\) 和 \(2m\) 个区间,构造长度为 \(n\) 的数列使得恰有 \(m\) 个区间所有元素互不相同,\(n\le2\times10^5,m\le10^5\)。
构造形如 1 2 3 4 5 6 ... x y y y y y y 的数列即可(\(y\le x\)),把 \(l\ne r\) 的区间排序后随便弄弄就做到 \(\mathcal{O}(n+m)\) 了。
2025-11-03 QOJ 4879 Standard Problem
给定 \(n\) 个 \([1,m]\) 的区间,区间带权,选出一个子序列使得存在一种在每个区间内选数的方法使得其不降,问最多选的权值和以及方案数,\(n,m\le2\times10^5\)。
发现就是对于每个区间,其前面的 \(l\) 最大值不超过 \(r\),那么线段树维护 dp 值就好,下标记录的是当前 \(l\) 最大值,时间复杂度 \(\mathcal{O}(m+n\log m)\)。
2025-11-03 QOJ 4880 Network Transfer
有 \(n\) 个文件要传输,给定带宽和每个文件的大小和发送时间,然后每个文件有优先级,同时传的时候按照优先级成比例分配,问每个文件收到时间,\(n\le2\times10^5\)。
带宽是 \(w\),然后大小 \(s\),优先级 \(a\),优先级总和 \(b\),那么发送时间是 \(T=\frac{s}{wa/b}=sb/wa\),可以看作有一个随着时间增加的变量 \(c\),其增长速度为 \(w/b\),然后这个文件需要 \(c\) 增长到 \(s/a\) 的时候结束,所以用 set 维护传输中的文件,然后这些文件收到的顺序其实固定了,处理一下文件的加入和删除同时动态维护 \(b\),模拟一下即可,时间复杂度 \(\mathcal{O}(n\log n)\)。
2025-11-03 QOJ 4888 Decoding The Message
有一个序列 \(a\),对于 \(i\in[0,256)\cap\mathbb{Z}\) 有 \(c_i\) 个 \(i\),对于 \(n!\) 个排列,记将 \(a\) 看作 \(256\) 进制数的结果为 \(k\),求出所有 \(k\) 的乘积 \(\bmod 65535\),询问 \(100\) 次。
考虑分别求出 \(\bmod 255\) 和 \(\bmod 257\) 然后 CRT,前者每一位的位权都是 \(1\),后者 \(1,-1\) 交错。
然后相当于把这些数分成两类然后求出它的 \(w=\left\lfloor\frac{n}{2}\right\rfloor!\left\lceil\frac{n}{2}\right\rceil!\) 次幂,如果 \(n\le 11\) 暴力,否则 \(w=0\),只要求出底数是否为 \(0\),显然当有至少两个数数目大于 \(2\times257+10\) 的时候底数为 \(0\),否则对于除了出现次数最多的数以外背包即可,时间复杂度 \(\mathcal{O}(1)\)。
\(\color{red}\Huge\text{今天堕落了,引起重视!!!}\)
2025-11-04 QOJ 4887 Fast Bridges
\(n\times n\) 的网格图,都是无向边,边权均为 \(1\),有 \(m\) 条特殊双向边连接 \((a,b),(c,d)\),边权为 \(|a-b|+|c-d|-1\),保证 \(a\ne c,b\ne d\),求所有点对最短路之和,\(m\le500\)。
假设从 \((A,B)\) 走到 \((C,D)\)(\(A\le C,B\le D\)),肯定一直往右下走,最短路就是 \(C-A+D-B\) 减去最多经过特殊边数量,前者的和好算,后者我们把往右下走的边和往右上走的边分开算,显然是对称的。
对于前者,算出 \(f_{i,j}\) 表示从第 \(i\) 条管道走到第 \(j\) 条的最多经过管子数量,然后枚举当前考虑小矩形,那么其开始管道有 \(m\) 种,枚举一下管道 \(t\) 然后对于每个 \(x\) 算出 \(f_{t,*}\ge x\) 的 \(*\) 对应管道右下角的举行并,这样复杂度是四方的,但是不用更新所有管道,有的信息可以重复利用就做到 \(\mathcal{O}(m^3)\) 了。
\(\color{red}\Huge\text{今天堕落了,引起重视!!!}\)

浙公网安备 33010602011771号