省选模拟25

T1:
神奇的构造
考虑设串(s_i)中所有1位置的下标之和为(w_i)
那么两种变换方式相当于:
A:(w_i+x*k)
B:(w_i+1)
可以得到:(x*k equiv 1mod n)
因此n与k互质是解存在的必要条件

若互质,考虑求出k的逆元p
对于串(s_i),令(pi,p(i+1),p(i+2)...,p(i+k-1))处为1
显然两两不同
对于A操作,只需要令x=p即可
对于B操作,因为(pi+1=frac{i}{k}+1=frac{k+(i+1)-1}{k}=p[(i+1)+k-1]),所以只需将(pi)右移一位即可

T2:
又是神奇构造???(大概吧)
首先在每个串后加一个极大字符
然后考虑对每个串s拆成(x^y+z)的形式,其中x不是z的前缀,且(x^{infty}<s),且最短
按照x升序,z降序来排
因为最优策略一定是首先尽量多的加入x,然后如果加完之后再加入z会更优,一定会选择最小的z加入

T3:
打怪兽模型(树上)
对每一个连通块设计一个pair(sum,max)
表示当前拥有的钱数大于等于max时可以获得这个块,而获得这个块后会得到sum的收益(母矿收益为(infty))
通过分类讨论定义pair之间的优劣关系,再重载加号表示合并
然后最初将每个点作为一个块放入平衡树中,不断取出最优的块与其父亲合并
最后的ans就是根节点的max

原文地址:https://www.cnblogs.com/Gkeng/p/12871448.html