「EZEC-9」Div.2
属实毒瘤。
T1
考虑交换k次之后什么状态。构造一个序列满足交换k次后一定只能处于这样的状态即可。
即 n 1 2 ... m n-1 n-2 ... m+1 即可。
交换肯定只会交换前m+1个数。
T2
二合一的题
第一个问,任意顺序模拟即可。进位次数一定相同。
第二个问,可以把原数的1也看做一些add操作。从低位到高位递推判断低位尽量进位的时候当前位能否进位即可。可以证明一定存在这样的操作方式。
T3
emm
我们把点的编号看作点权
首先可以考虑到如果x是y的祖宗,一定有x=ty。
这是一个充要条件,也就是一个数x的所有祖宗都能整除x。
这些祖宗之间也同样会存在倍数关系。
因此如果能满足条件,那么x的父亲一定是题目中出现过的它最大的因数。否则不合法或无解。
然而这并不是最难的地方
再来判无解。
考虑无解时一定存在一对数(x,y)不满足条件,但他们的祖先之间都满足条件。而这对数之后的都不会再满足条件了。
假设有一对祖先为\((rx,ry)\),则 \(gcd(rx,ry)=lca_{x,y}\),且 \(gcd(fa_{rx},fa_{ry})=lca_{x,y}\)
假设\(rx=afa_{rx},ry=bfa_{ry}\)
我们必然有\(\gcd(a,b)=1\),否则上述柿子不成立。
于是我们有一种解法:枚举每一个质数\(p\),判断有\(p\)这个因子的a是否在一条链上。
记录下a中有p这个因子的最深结点,从它一直跳到根即可。
因为树高是log级别的。
T4
贪心题。
先考虑k=0。可以发现一定是靠近恒卷人的一段都卷,靠近恒颓人的某一段都颓。而这个分界线一定是暂卷人。于是找到每一个恒卷和恒颓人之间最靠近恒颓人的那个暂卷人即可。
再考虑只有两个恒人的情况。此时只要有暂卷人,直接交换到最右边即可。否则只有恒卷人卷(太惨了)
最后。我们可以得到贪心做法。
如果某一段有2个暂卷人,那靠近恒卷人的那一个暂卷人对答案没有贡献,优先使用对原始答案没有贡献的暂卷人交换。贪心交换即可。这相当于是改暂颓为暂卷(觉悟了)
如果还有交换次数,优先选择贡献答案小的进行交换,开几个堆即可实现。
本文来自博客园,作者:lei_yu,转载请注明原文链接:https://www.cnblogs.com/lytql/p/15238485.html