根据数据范围,暴力可以解决,对每一个串,找与其互为回文的串,或者判断自身是否为回文串,然后两两将互为回文的串排列在头尾,中间放且只能最多放一个自身为回文串的串,因为题目说每个串都是不同的 #include<bits/stdc++.h> using namespace std; #define low ...
分类:
其他好文 时间:
2020-02-16 14:54:52
阅读次数:
85
解法 比较经典的问题,寻找最长回文子串。Leetcode里提供了多种解法。我采用最直观的解法:中心扩展法。 思路是每次以当前元素为中心向两边扩展,直到遇到不同元素,此时找到一个子串。有两点需要注意的地方: 1)空串和单字符都是回文,直接返回即可。 2)偶数回文和奇数回文的情况。例如:abace是ab ...
分类:
其他好文 时间:
2020-02-15 15:10:53
阅读次数:
57
回顾了一下回文树 回文树可以统计一个字符串中本质不同的回文串的数量、长度、回文串的总数量等 反正以后遇到回文串的题直接上回文树就好了 "模板题" 这个题就直接在最后累计回文串个数的时候顺便统计存在值就行了,十分方便 在出这道题的时候回文树还没有提出,可以发现之前大家想做这道题得吃不少苦, 有了回文树 ...
分类:
其他好文 时间:
2020-02-15 10:08:35
阅读次数:
73
给出两个字符串,询问有多少种反转方法可以使字符串1变成字符串2。 如果两个串相同,就用马拉车算法找回文串的数量~ 如果两个串不同,从前往后找第一个不同的位置l,从后往前找第二个不同的位置r,反转l和r,判断是否成功~ 如果不成功,记为0 如果成功,以l和r为起点判断是否能反转,记录次数 #inclu ...
分类:
其他好文 时间:
2020-02-14 16:02:35
阅读次数:
79
题目:给你一个回文字符串 palindrome ,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的字典序最小,且 不是 回文串。请你返回结果字符串。如果无法做到,则返回一个空串。链接:https://leetcode-cn.com/problems/break-a-palindrome ...
分类:
其他好文 时间:
2020-02-13 00:29:00
阅读次数:
68
题目描述 给你一个由小写拉丁字母组成的字符串 s。我们定义 s 的一个子串的存在值为这个子串在 s中出现的次数乘以这个子串的长度。对于给你的这个字符串 s,求所有回文子串中的最大存在值。 输入格式 一行,一个由小写拉丁字母(a~z)组成的非空字符串 s。 输出格式 输出一个整数,表示所有回文子串中的 ...
一个字符串能重排成回文串等价于这个字符串最多只有一个字符出现次数为奇数次 这题的询问和子树中深度有关,那么显然可以用dsu on tree解决 把询问离线下来挂在点上,然后按dsu on tree的顺序统计子树信息即可 复杂度\(O(nlogn+26m)\) 1 #include<bits/stdc ...
分类:
其他好文 时间:
2020-02-10 13:37:02
阅读次数:
64
。。。 T1真的我方了。 T1 计算几何。 。。。 不管我用什么方法都$A$不了。 不管是用正弦定理余弦定理还是别的什么。 咕了。 T2 简单的差分+马拉车。 先用马拉车处理出以每个位置为重心的回文串的长度。 然后处理出两个数组,$st[i],ed[i]$。 分别表示以这个点为起点的回文串的终点的总 ...
分类:
其他好文 时间:
2020-02-09 22:15:12
阅读次数:
84
从一个序列中每次取出一个回文串,求最少取几次(取出后两端外的数会相接) 设 $f[i][j]$ 为在闭区间 $[i,j]$ 取完所有的花费,则有 $f[i][i]=1, f[i][i+1]=1+[a[i] \neq a[i+1]]$ 转移方程 $f[i][j] = f[i+1][j 1], a[i] ...
分类:
其他好文 时间:
2020-02-08 10:10:04
阅读次数:
77
问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : mad ...
分类:
其他好文 时间:
2020-02-05 11:43:20
阅读次数:
55