"传送门" 解题思路 首先这道题如果有两个以上长度的回文串,那么就一定有三个或两个的回文串,所以只需要记录一下上一位和上上位填的数字就行了。数位$dp$,用记忆化搜索来实现。设$f[i][j][k][0/1]$表示填到了第$i$位,上上位数字为$j$,上一位数字为$k$,$0/1$表示有没有出现过回 ...
题目链接 题意 : 给你一个串、要你将其划分成两个串、使得左边的串的本质不同回文子串的个数是右边串的两倍、对于每一个这样子的划分、其对答案的贡献就是左边串的长度、现在要你找出所有这样子的划分、并将贡献乘起来、答案 mod 1e9+7 分析 : 从左到右跑一边回文自动机、对于每个前缀 能够得出其有多少 ...
分类:
其他好文 时间:
2018-10-18 22:10:19
阅读次数:
414
完全不会这种类型的$dp$啊…… 考虑回文串一定是可以拆分成(偶数个字母 + 偶数个字母)或者(偶数个字母 + 一个字母 +偶数个字母),两边的偶数个字母其实是完全对称的。因为这道题回文串的长度是给定的$n + m$,所以回文串的类型也是确定的。 发现直接$dp$不好转移,我们可以把走的步数拆成两半 ...
分类:
其他好文 时间:
2018-10-17 12:24:56
阅读次数:
183
思路: 排序后输出即可。 证明: 令Nx表示字母x的数量,由于回文子串的首尾字母必须相等,那么即使所有以字母x开头和结尾的子串都是回文串,回文子串总数也不过Na * (Na + 1) / 2 + Nb * (Nb + 1) / 2 + ... + Nz * (Nz + 1) / 2,而排序后能达到同 ...
分类:
其他好文 时间:
2018-10-16 01:38:58
阅读次数:
147
题意 给以一个字符串,让你重排列,使得回文子串的数目最多 分析 对于一个回文串,在其中加入一些字符并不会使回文子串的个数增加,所以对于相同的字符一起输出即可,我是直接排序 代码 ...
分类:
其他好文 时间:
2018-10-15 20:49:46
阅读次数:
153
//p[]为最长回文半径长度,id为当前最靠右端回文串的中心点(多个取最靠左),mx为id对应的回文串的最右端坐标+1void manacher(char *s,int len){ p[0] = 1; int mx = 0 , id = 0; for(int i = 1 ;i i ? min(p[i... ...
分类:
其他好文 时间:
2018-10-15 14:51:26
阅读次数:
121
package huiwenchuan; import java.util.Scanner; public class Main { //判断一个字符串是否为回文串 public static boolean isHuiWen(String s) { int len=s.length(); for( ...
分类:
编程语言 时间:
2018-10-14 00:30:41
阅读次数:
250
看着前面咕咕咕的国庆集训 难受 十月十日要萌一天哇www A.字符串 题意:给定一个字符串 问能否交换两个字符或者不交换字符,使其成为回文串 之前写的太丑 重写一遍加一堆 if 竟然过了w 思路:求出正序和倒叙有多少个不同的,根据不同的数量以及字符串长度(奇偶)判断。。 体验就是这种题要想好了再下笔 ...
分类:
其他好文 时间:
2018-10-11 01:47:42
阅读次数:
176
Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S两组ca ...
分类:
其他好文 时间:
2018-10-07 20:53:34
阅读次数:
160