清华集训 2014
https://www.cnblogs.com/mangoyang/p/11650708.html。
玛里苟斯
菜。
\(k=1\) 时,考虑算每一位异或值为 \(1\) 的贡献,发现其为 \(2^{n-1}\)。证明考虑如果这一位有数,那么选择奇数个和选择偶数个的次数是相等的。所以只需输出所有数的按位或的值除以 \(2\) 就行了。
\(k=2\) 时,把平方拆开,分类讨论选的情况就行了。
\(k\ge 3\) 时,因为答案 \(< 2^{63}\),所以数列里的最大值 \(<2^{21}\)。然后我们可以证明一个集合的答案等于其线性基的答案。具体就是集合里一个数 \(x\) 异或集合里另一个数 \(y\) 之后答案不变。暴力枚举线性基里的选取情况求答案就行了。
https://yhx-12243.github.io/OI-transit/records/uoj36.html。
https://uoj.ac/submission/624225。
主旋律
好厉害。nb 容斥。
首先可以了解一下有向图 DAG 子图计数:https://www.cnblogs.com/Go7338395/p/14907440.html。
然后 https://www.cnblogs.com/NeosKnight/p/10876846.html 写的很好。我就不写了。
数数好难。
https://yhx-12243.github.io/OI-transit/records/lydsy3812%3Buoj37.html。
https://uoj.ac/submission/623900。
奇数国
shaber 题。
线段树维护区间乘积以及每个质数是否出现。直接做就行了吧。
https://uoj.ac/submission/624181。
卡常数
k-D Tree。
上下界剪枝就行。
出去散散心回来就过了。什么水平。
https://uoj.ac/submission/624899。
矩阵变换
稳定婚姻问题模板。参考:https://www.cnblogs.com/Lrefrain/p/12373898.html;https://yhx-12243.github.io/OI-transit/records/lydsy3816%3Buoj41.html。
之前完全没学过这东西,鉴定为菜。
显然这是一个行匹配数的过程。不妨设 \(pos_{i,j}\) 表示第 \(i\) 行数 \(j\) 的位置。
那么不合法的条件就是:
- 设 \(x\) 行匹配数 \(i\),\(y\) 行匹配数 \(j\),则 \(pos_{y,i}<pos_{y,j}\)、\(pos_{x,i}<pos_{y,i}\)。
所以可以知道,对于每行,数字越靠左越优;对于每列,它在这一行的位置越靠右越优。
可以用队列模拟匹配的过程。
https://uoj.ac/submission/624166。
虫逢
神秘随机。
https://www.cnblogs.com/windf/p/16771618.html。
https://uoj.ac/submission/624558。
玄学
强制在线上线段树转化成二进制分组。很厉害的思想。
建一棵线段树,下标为时间轴。对于每个线段树上的时间区间,维护每个连续段需要做的变换。显然这个变换是可以复合的。
由于 \(k\) 个操作最多将序列划分为 \(2k+1\) 个连续段,因此直接拿 vector 去存储是不会爆空间的。
pushup 就是类似归并排序的过程。注意只有一个区间的所有子区间全部填满了才需要 pushup,因为只有这种区间求答案才有可能用到。
求答案只需要找到对应的时间区间,然后找到 vector 里存储的第一个右端点 \(\ge\) 查询位置的变换并做这个变换。从左到右做是按照时间来的,因此没有问题。

浙公网安备 33010602011771号