省选模拟25
T1:
神奇的构造
考虑设串\(s_i\)中所有1位置的下标之和为\(w_i\)
那么两种变换方式相当于:
A:\(w_i+x*k\)
B:\(w_i+1\)
可以得到:\(x*k \equiv 1\mod 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