「WC2016」论战捆竹竿 「WC2016」论战捆竹竿 前置知识 参考资料:《论战捆竹竿解题报告—王鉴浩》,《字符串算法选讲—金策》。 Border&Period 若前缀pre(s,x)pre(s,x)与后缀suf(s,n−x−1)suf(s,n−x−1)相等,则pre(s,x)pre(s,x)是ss的一个BorderBorder。 xx是ss...
题目描述 n<=5e5,w<=1e18,T=5 题解 需要各种前置姿势的吼题 同余最短路 求形如$\sum a_ix_i=A;(a_i>=0,x\in \N)$的A的个数 做法是按找%min(a)变成min(a)*x+b来分类跑最短路,f[i]表示%min(a)=i的最小的b,最后
小W对竹竿的审美要求很高,他捆竹竿时有一个癖好:如果两根竹子的某两节被捆在了一起,那么它们的颜色必须相同。 我们假设一根短竹子从底端到顶端每节的颜色为aba。 那么两根竹子可以首尾捆在一起,可以得到一根颜色为abaaba的竹竿;也可以将第一根顶端的一节a与第二根底端的一节a捆在一起,得到一根颜色为ababa的...
免费查询更多【wc2016】论战捆竹竿详细参数、实时报价、行情走势、优质商品批发/供应信息等,您还可以发布询价信息。
UOJ#172. 【WC2016】论战捆竹竿 字符串 KMP 动态规划 单调队列 背包,原文链接https://..com/zhouzhendong/p/UOJ172.html题解首先,这个问题显然是个背包问题。然后,可以证明:一个字符串的border长度可以划分成$O(log|S|)$个等差数列。(以下图片摘自金策-《字符串算法选讲
因此,除了第一步必须加入整个ss外,无论何时,我们能够加入一段长为xx的字符串,当且仅当n−xn−x是ss的一个borderborder。 于是先用KMPKMP求出ss的所有borderborder,那么就求出了单次可能加入的所有长度。 考虑到borderborder的性质,所有的borderborder可以划分为至多O(logn)O(logn)个等差数列。 则单次可能加...
WC2016 论战捆竹竿 考场上看错题了,以为要求的是能形成的本质不同的字符串数,于是完全背包死活过不了样例 求的是能形成的不同长度数,可以联想到同余最短路 于是暴力的做法是求出所有boarder长度,O(n2logn)O(n2logn)跑同余最短路 但显然是过不去的,于是考虑优化 ...
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ172.html 题解 首先,这个问题显然是个背包问题。 然后,可以证明:一个字符串的 border 长度可以划分成 $O(log |S|)$ 个等差数列。 (以下图片摘自 金策 - 《字符串算法选讲》) 由
首先重叠的部分一定是ss的一个borderborder,因此每次操作就等于是给原串增加|s|−|s|−原串的一个borderborder的长度。先kmpkmp求出所有的|s|−border|s|−border长度,设为{xi}{xi},那么问题转化为求解∑sumi=1aixi∑i=1sumaixi在[0,m−|s|][0,m−|s|]范围内能取到多少个不同的值。
UOJ#172. 【WC2016】论战捆竹竿 传送门 首先这个题目显然就是先求出所有的borderborder,问题转化成一个可行性背包的问题 一个方法就是同余类最短路,裸跑3030分,加优化5050分 首先有个性质 borderborder分成的等差数列的个数不超过loglog 和回文树的性质的证明类似瞎画图一下就行了...