apio2014专题

APIO2014 连珠线 ( beads)

题意 有 n n n个珠子,一开始只有一个珠子,随后的 n − 1 n-1 n−1个珠子以如下方式之一加入: 1.直接向已有的珠子连一条红线; 2.在已有连红线的两个珠子之间的红线拆段,再分别向它们连一条线。 给出最后形成的树(不给出边的颜色),且每条边有权值,求蓝边权值和的最大值。 题解 原始想法:根据样例猜一下,是不是每个点都可连两条蓝边,保证蓝边不相交,树形DP一下即可?显然是错的(A

bzoj3676[APIO2014]回文串

Description 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最 大出现值。 Input 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s。 Output 输出一个整数,为逝查回文子串的最大出现值。 Sample Input 【样例输入l】 abacaba 【样例

后缀数组+二分+--luoguP3649 [APIO2014]回文串

传送门 首先回文子串可以用 m a n a c h e r manacher manacher求出来,并且可以知道开头和长度,那么问题就转化成求一个子串在原串中出现了多少次。 这个可以用 S A M SAM SAM求(但我还不会 于是就用了 S A SA SA,首先把 h h h数组求出来,那么结合 s t st st表就可以 O ( 1 ) O(1) O(1)求出一个后缀和另一个后缀的 l

BZOJ 3676: [Apio2014]回文串 回文自动机模板

3676: [Apio2014]回文串 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 4762  Solved: 2279 [Submit][Status][Discuss] Description 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出  现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最