上集(Cure_B的搬砖问题)说到Cure_B为了去阿拉德打团,就发布了悬赏金额为1e(1e9)的任务叫别人帮他计算收益。与此同时,冒险者Thanks_up从公会长ccl66那里听说了这个任务,就叫上自己的同伴chengdong两个人去大砖厂实地考察。在打倒一只隐藏的阶层之主之后Thanks_up在自己的装备栏里看到了一把剑:无悔の湖光,这把剑无比强大,但是它的是有意志的剑,要想成为他的主人的条件可不简单;
你要将一串神奇的魔咒写在羊皮纸上,然后用那剑将那个魔咒的其中一个连续子串(A)一分为二(B与C),且满足子串(B与C)都是回文;而且子串越长,这把剑给你的附加效果就越强,附加效果强度为子串长度。生为冒险家的Thanks_up当然想要越强越好啦!那么请问Thanks_up最多能得到几点附加效果呢!
单组数据
因为字符串过大,为了不让这些数据让占空间,将使用下面这个函数生成随机的字符串
void get(int n, int A, int B, int C){ unsigned x = A, y = B, z = C; unsigned t; for(register int i=1; i<=n; ++i){ x^=x<<16; x^=x>>5; x^=x<<1; t=x;x=y;y=z; z=t^x^y; s[i]=(z%26)+'a';///这个是你的字符串,数据相当于完全随机 } }
对于上面这个生成器我们输入的参数就是n、A、B、C (1<=1e6)、(A、B、C在int范围内)
输出最长子串长度;
6 6 6 6
6 HIT: 字符串是:gggwwg gg gwwg