#Educational Codeforces Round 35
_vb92xHWx8zQTc_34 vp
A. Nearest Minimums
题意:求数列里两个最近的最小值的距离
题解:先把最小值求出来,再把最短距离求出来???
\(O(n)\)
1min
B. Two Cakes
题意:有两个蛋糕质量为 \(a,b\) ,要把 \(a\) 和 \(b\) 分到 \(n\) 个盘子里,每个里面质量是整数且只有一种蛋糕,求所有盘子最小质量的最大值。
\(a,b,n \leq 100\)
题解:枚举 \(a\) 被切成了几块,就没了??
\(O(n)\)
3min
C. Three Garlands
题意:有三个数 \(a,b,c \leq 1500\) ,问是否存在 \(x,y,z\) 使得任意正整数 \(n\) 都满足 \(\% a=x\) 或 \(\% b=y\) 或 \(\% c=z\)。
题解:
如果 \(a,b,c\) 中有 \(1\) 显然可以。
如果 \(a,b,c\) 中有两个 \(2\) 显然可以。
如果 \(a,b,c\) 都是 \(3\) 显然可以。
如果 \(a,b,c\) 有两个 \(4\) 一个 \(2\) 显然可以。
剩下的情况手动枚举一下,\(1\leq \frac{1}{a}+\frac{1}{b}+\frac{1}{c}\) 的不多,发现只有这四种可能。
(或者可以直接对于\(1\leq \frac{1}{a}+\frac{1}{b}+\frac{1}{c}\) 的 \(a,b,c\) 枚举 \(x,y,z\),然后枚举到 \(lcm(a,b,c)\) 判断,懒得写了)
\(O(1)\)
5min
D. Inversion Counting
题意:维护一个数据结构,支持区间翻转,求逆序对的奇偶性。
\(n \leq 1500\),\(q \leq 2\times 10^5\)
题解:
初始状态的奇偶性可以暴力算。
每次区间翻转,只有区间内部的逆序对个数有变化。
设原来的逆序对为 \(x\) 个,区间长度为 \(l\),则之后会变成 \(\frac{l*(l-1)}{2} -x\)。
因为原来是逆序对的现在都不是了,原来不是的现在都是了。
每次只要看 \(\frac{l*(l-1)}{2}\) 的奇偶性就行了( \(x\) 和 \(-x\) 同奇偶)
\(O(n^2+q)\)
3min
E. Stack Sorting
题意:称一个长为 \(n\) 的排列可以被“栈排序”,当且仅当它的出栈序列可以是 \(1,2\cdots n\)。给出长度为 \(n\) 的排列的前 \(k\) 项,求这个排列的字典序最大值。
题解:
“栈排序”干的事情时把若干个不相交的区间翻转。
所以原排列一定可以被表示成 \(p_1,p_1-1\cdots 1,p_2,p_2-1\cdots p_1+1 \cdots p_m,p_m-1 \cdots p_{m-1}+1\)。
判一下给出的 \(k\) 个是否合法,把当前的 \(p_i\) 补到 \(p_{i-1}+1\),然后从 \(n\) 往下填就好了,显然这样字典序最大。
\(O(n)\)
9min
F. Tree Destruction
题意:有一棵树,每次可以选两个叶子,给答案加上它们的距离,并且删掉一个,求最大答案并构造方案。
\(n \leq 10^5\)
题解:
由于距离某个点的最远点一定是直径的某个端点,不在直径上的点均可以取到这个值。
然后就变成了一条链,随便删就是最优的。
但是为什么最后删直径上的点最优呢?
假设在删直径的时候某个点贡献是 \(x\) ,如果它和别的点的贡献 \(>x\) ,且它到那个点的路径和直径没有公共边,那么直径就不是直径了。
怎么保证没有公共边呢?
如果有公共边,往公共边那里跳一步就好了,肯定还在那两条路径上。
构造的话就把直径和两端到所有点的距离求出来,就随便构造了?
\(O(n)\)
66min
G. Mass Change Queries
题意:有 \(n\) 个数,\(q\) 次修改,每次把区间里的所有 \(x\) 改成 \(y\) ,求操作完后序列。
\(n,q \leq 2\times 10^5\) ,\(a_i \leq 100\)
题解:
分块+并查集。
对于每块里面维护一个并查集。
是整块的把 \(x,y\) 并到一起里,并把这个连通块的权值设成 \(y\)。
对不是整块的先把当前状态求出来暴力修改。
\(O(n^{1.5}*\alpha(n)^{1.5})\)
题解2:
线段树。
线段树的每个节点维护一个100元组,第 \(x\) 个是 \(y\) 表示当前区间里面所有 \(x\) 都应该是 \(y\)。
每次修改就直接把这 \(\log n\) 个区间里面的第 \(x\) 改成 \(y\) 就好了。
\(O(n\log n*a_i)\)
题解3:
其实这题暴力可过
\(O(nq)\)
浙公网安备 33010602011771号