码迷,mamicode.com
首页 > 其他好文 > 详细

省选模拟25

时间:2020-05-11 20:33:19      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:最小   表示   模型   lin   max   下标   变换   取出   方式   

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

省选模拟25

标签:最小   表示   模型   lin   max   下标   变换   取出   方式   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!