UNR #7总结
DAY1T1
稍微有点难想,想了 \(50min\) A 掉但是感觉时间有点亏。
每个数位置的奇偶性不会变,最后剩的有一定是奇数位置,所以取原数列奇数位置上所有数的中位数即可
DAY1T2
毒瘤构造,打个部分分直接跑。
令 \(a\&b=0\) 修改操作相当于是将位置编号为 \(x\),\(a\&x=a\) 且 \(x\&a+b=x\) 的数取反。
考虑将所有数按照二进制下 \(1\) 的个数分层。第 \(i\) 层的数二进制下有 \(i\) 个 \(1\) 最高层只有 \(2^k-1\)。
设第 \(i\) 层的数的集合为 \(S_i\)。容易发现,可以通过对 \(S_i\) 中的一个数进行一次合适的操作使二进制下比它差一个 \(1\) 的数中的任意集合改变。
那么需要找到一个最小的集合 \(T_i\) 使操其中的数的影响范围可以覆盖 \(S_{i-1}\)。这样就只需对 \(T_i\) 中的数进行操作使第 \(i-1\) 层变成 \(T_{i-1}\),直到全部变成 \(0\)。
\(T_i\) 可以通过贪心预处理,这样上界为 \(157885\)。可以证明(就是不知道怎么证明)次数上界为 \(\frac{n\ln\ln n}{\ln n}\)。
DAY1T3
又是只有 \(20pts\) 的一道题...
考虑每次取两个不同种类宝石的限制,答案应该为 \(max(a,b,c,d,e,\frac{s+1}2)\),其中 \(s\) 为宝石总数。
那么相当于有绝对众数的时候答案取绝对众数的,否则为和的一半。
看到绝对众数,可以想到摩尔投票,至少是摩尔投票的思想。
考虑设 \(d_{i,j,k,s}\) 表示桌上两张牌为 \(i,j,i<j\),还剩 \(s\) 张 \(k\) 没有被消掉时最少消了多少次。\(f_{i,j,k,s}\) 表示桌上两张牌为 \(i,j,i<j\),还剩 \(s\) 张非 \(k\) 的牌没有消掉时最少消了多少次。
转移是比较显然的,将转移式子写出来后观察发现是一个定长区间或定中心区间中同奇偶位置和一个公差为 \(-1\) 的等差数列取最小值,可以用单调栈和前后缀预处理优化至 \(O(1)\) 转移。
DAY2T1
开始思考了很久,没有头绪,然后又看了一眼题——\(a_i\ge b_i\)!试图把刚刚的所有思路重新验证一遍,但是还是忘了大部分,其中就有正解!!!
对于一个询问 \(l,r,k\),区间内 \(b\) 前 \(k-1\) 大的人一定可以被选且不会被放逐,因为他们一定不会垫底。于是只用考虑最后一个名额。
考虑 \(b\) 第 \(k\) 大的人,在前 \(k-1\) 大的人的最后一个加入前他都不会垫底,而之后就有被放逐的风险。于是倍增预处理每个数在只有一个名额时会被谁放逐。然后对于每个询问找到最后一个在前 \(k\) 大中的数和 \(r\) 之间第一个 \(a\) 笔第 \(k\) 大的 \(b\) 大的人开始倍增。
DAY2T2
看到这个题意脑袋就已经是装满浆糊了,打了两个 \(5pts\) 就走人了。结果还挂了一个,不晓得咋挂的。
考虑将变量一个个消去。假设现在想要消去 \(x_n\),那么可以枚举最紧的限制,得到形如 \(x_i-c_{i,n}\le x_n\le x_j+c_{n,j}\) 的限制。
那么就可以在加上一条 \(x_i-x_j\le c_{n,j}+c_{i,n}\) 的限制后考虑所有 \(x_1,x_2,\dots,x_n\) 的方案。
这样相当于我们需要维护一个关于 \(x_1,x_2,\dots,x_n\) 的多元多项式,每次相当于将所有的 \(x_n^k\) 替换为 \([x_i-c_{i,n},x_j+c_{n,j}]\) 中所有数的 \(k\) 次方和。
优化考虑差分,分别枚举 \(i\) 和 \(j\),也不需要新加入条件。时间复杂度 \(O(n!2^nc^n)\),其中 \(c^n\) 为维护多项式复杂度。
DAY2T3
官方题解没咋看懂啊,隔壁机房一个大佬将了一种根号做法。
数据范围 \(2e5\),可以支持根号算法。
考虑将操作序列分块,对于每一块,将操作涉及到的点设为关键点,那么共有 \(O(\sqrt Q)\) 个关键点。考虑对于每一个关键点维护一个 \(f_t\) 表示在 \(t\) 时刻到达这个点的情况下最早的到达下一个关键点的时间。
将之前的修改操作都挂到对应的点上,对于每相邻两个关键点间的段,考虑从后往前枚举修改。对于一个点上的一个关门段 \([l,r]\),有 \(f'_{l\sim r}=f_{r+1}\)。\(f'\) 即是新的 \(f\)。这个操作可以用线段树区间覆盖完成。
这样处理之后,对于每个询问操作,就可以用 \(O(\sqrt Q)\) 的复杂度跳出答案。
时间复杂度 \(O(n\sqrt Q\log Q)\)。