[题解向] Manacher简单习题】的更多相关文章

\(1\) LG1659 [国家集训队]拉拉队排练 求前\(k\)大的奇数长度回文串的长度之积. \(\rm |S|\leq 1e6,K\leq 1e12\) --一开始觉得挺水,就开始二分最少长度能到多少.写写写-写到最后发现细节很烦人-然后最后发现是错的qaq 二分是没错,只是最后计算错了.大概就是考虑二分出的最小长度是\(k\),对于一个大于\(k\)的长度\(l\)有好多个,没法知道\(l\)们到底要算到几,也就是说\(7\)中一定包含着\(3/5/7\),但是对于\(l\),其中可能有…
\(1\) LG5496 [模板]回文自动机 对于 \(s\) 的每个位置,请求出以该位置结尾的回文子串个数. \(|s|\leq 1e6\) 然后就是PAM的板子题咋感觉好像没有不是很板的PAM题呢 考虑对自动机上每个点维护一个出现次数\(cnt\),那么考虑串里面的任何一个前缀的回文后缀都是其最长回文后缀的回文后缀,所以就可以有转移 \[ cnt_{p}=cnt_{fail_p}+1 \] 然后就没有然后了. \(2\) [APIO2014]回文串 给你一个由小写拉丁字母组成的字符串\(s\…
同步发表于 Mina! 题目大意 对于满足以下要求的长度为 \(n\) 的序列进行计数: 序列的值域为 \([1,k]\); 对于序列的任意位置 \(p\in[1,n]\),可以找到至少一个 \(i\) 满足 \(p\in[i,i+k-1]\),且区间 \([i,i+k-1]\) 为一个 \(1\sim k\) 的排列. \(n\le10^5,k\le100\) 解题思路 其实原本题意不是这样的,试图描述正式之后好像更难懂了. 密码是一个长度为 \(n\) 的序列. 密码由若干个 \(1\sim…
Python2 与 python3 的区别: python2源码不标准,混乱,重复代码太多 python3统一标准,去除重复代码 python2的默认编码方式是ASCII码,不能识别中文.解决方法:在文件首行(#-*- encoding:utf-8 -*-) python3的编码方式是utf-8 python的环境: 编译型:一次性将所有程序编译成二进制文件.优点:运行速度快.缺点:开发效率低.不能跨平台.C.C++ 解释型:当程序执行时,一条一条解释.     优点:开发效率高.可以跨平台.缺…
这次接触到记忆化DFS,不过还需要多加练习 113. 路径总和 II - (根到叶子结点相关信息记录) """ 思路: 本题 = 根到叶子结点的路径记录 + 根到叶子结点的值记录 """ class Solution: def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]: res = [] def DFS(root, s, tmp): if not root: ret…
package day05; import java.util.Arrays; /** * 方法作业 * @author ASUS * */ public class Demo6 { /* * 1.定义一个方法,求圆的面积 方法参数:半径 (radius) 圆周率:Math.PI 2.定义一个方法,求数组的最大值 */ public static void main(String[] args) { //1. int r; circle(r=3); //2. int arr1[] = {12,3…
题意:假设有n个人按顺序的身高分别是h[1], h[2] ... h[n],从中挑出一些人形成一个新的队形,新的队形若满足以下要求,则就是新的完美队形:  1.连续的 2.形成回文串 3.从左到中间那个人,身高需保证不下降 问有组成完美队形的最多人数 题解:Manacher算法的变形. 首先我们来解释一下Manacher算法:在我看来就是一个优化的暴力. 我们首先统一奇偶回文串成为奇数回文串,就是在两个数之间加入一些不可能出现的数. 例如题目:1 2 3 3 2 5 2 3 1—>(符号更加清楚…
这个专栏开始介绍一些<ACM国际大学生程序设计竞赛题解>上的竞赛题目,读者可以配合zju/poj/uva的在线测评系统提交代码(今天zoj貌似崩了). 其实看书名也能看出来这本书的思路,就是一本题解书,简单暴力的通过题目的堆叠来提升解决编程问题的能力. 那么下面开始探索吧. poj1037: Description Background For years, computer scientists have been trying to find efficient solutions to…
HOT~ 杭电2015级新生如何加入ACM集训队? 最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12244    Accepted Submission(s): 4501 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符…
1699: 回文串问题 时间限制: 1 Sec  内存限制: 128 MB 提交: 22  解决: 3 [提交][状态][讨论版] 题目描述 还是回文串问题,字符串是啥,大家应该都知道,就是满足 S[i] = S[L - i + 1] (1 <= i <= L)的串,现在遇到了一个问题,就是想问你一个字符串最少在后边加几个字符可以形成一个回文串,并最后输出形成的回文串 输入 输入包括多组数据,每组数据包含一个字符串 输出 输出转换后的回文字符串 样例输入 add cigartragic dxh…
2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制等等... 有些题目还需要大家对程序的效率做出优化..大一的小宝宝可能有一些吃不消..当成是一种体验就好了. 题解目录: ZUFE OJ 2307: 最长连续不下降子串 ZUFE OJ 2308: Lucky Number ZUFE OJ 2309: 小明爱吃面 ZUFE OJ 2310: 小明爱消除 ZUF…
题链: http://poj.org/problem?id=3974 题解: Manacher 求最长回文串长度. 终于会了传说中的马拉车,激动.推荐一个很棒的博客:https://www.61mon.com/index.php/archives/181/ 代码: #include<cstdio> #include<cstring> #include<iostream> #define MAXN 2005000 #define filein(x) freopen(#x&…
Codeforces Round #542 abstract I决策中的独立性, II联通块染色板子 IIIVoronoi diagram O(N^2 logN) VI环上距离分类讨论加取模,最值中的决定性元素 V代数构造 B 题意 2n个数排成一行,1..n各出现两次,两个人分别从1按顺序走到n(每个数只能被一个人路过),问他们两个人的距离和的最小值(两个数之间的距离等于他们位置(下标)值差)? 题解 将每个数的两个位置用pair存起来(eg : pos[1].x , pos[1].y). 首…
题目描述 给你一个\(n\times m\)的网格图和\(k\)个障碍,有\(q\)个询问,每次问你有多少个不同的不经过任何一个障碍点且经过\((x,y)\)与\((x+1,y)\)之间的简单回路 \(n\leq 1000,m\leq 6,q\leq 10000\) 题解 简单插头DP 先用DP求出前面\(i\)行的的方案数和后面\(i\)行的方案数,询问时暴力合并. 其实状态数很少的(不到\(200\)) 时间复杂度:\(O(???)\) 代码 #include<cstdio> #inclu…
题意:找串的最长回文字串(连续) 题解:manacher版题 一些理解:首位加上任意两个字符是为了判断边界. 本算法主要是为了 1.省去奇偶分类讨论. 2.防止形如aaaaaaa的串使得暴力算法蜕化为n^2; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<queue> #include<algorithm> #include<iostream> #include<vector>…
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开(该空行不用处理) 字符串长度len <= 110000Output每一行一个整数x,对应一组case,表示该组case的字符串中所包含的最长回文长度. Sample Input aaaa abab Sample Out…
做出了4题,还不错,可惜还是掉rating……能保持在蓝名已经不错了. 题目跳转链接. [A]公平的游戏 题意: Petya和Vasya在玩游戏.他们有n张卡片(n是偶数).每张卡片上有一个整数. 游戏开始前,Petya会选出一个数,然后Vasya会选出另一个数(不同于Petya选的数),然后每人从卡片中抽出所有写着他选中的数的卡片. 举个例子,Petya选了5,而Vasya选了10,那么Petya抽出所有写着5的卡片,而Vasya抽出所有写了10的卡片. 如果Petya和Vasya能抽走所有卡…
题目链接: http://codeforces.com/problemset/problem/7/D D. Palindrome Degree time limit per test1 secondmemory limit per test256 megabytes 问题描述 String s of length n is called k-palindrome, if it is a palindrome itself, and its prefix and suffix of length…
菜鸡刷题记录 [题号:题解] 1008:简单排列组合 #include <bits/stdc++.h> using namespace std; #define ll long long ; ll n, m; ll qmod(ll base, ll n) { ll res = ; while (n) { ) res = res * base % MOD; base = base * base % MOD; n >>= ; } return res; } int main() { w…
题目大意:给你一个字符串,求出它的最长回文字段 题解:$manacher$算法 卡点:$p$数组未开两倍空间 C++ Code: #include <cstdio> #include <cstring> #define maxn 11000010 char o[maxn], s[maxn << 1]; int p[maxn << 1]; int n; inline int min(int a, int b) {return a < b ? a : b;…
目录 Bzoj 近期题目题解 1000: A+B Problem (模拟) 1008: [HNOI2008]越狱 (容斥) 1012: [JSOI2008]最大数maxnumber (线段树) 1034: [ZJOI2008]泡泡堂BNB (贪心) 1036: [ZJOI2008]树的统计Count (树链剖分) 1051: [HAOI2006]受欢迎的牛 (tarjan) 1059: [ZJOI2007]矩阵游戏 (二分图匹配) 1355: [Baltic2009]Radio Transmis…
描述 给定一个字符串S,请统计S的所有|S| * (|S| + 1) / 2个子串中(首尾位置不同就算作不同的子串),有多少个是回文字符串? 输入 一个只包含小写字母的字符串S. 对于30%的数据,S长度不超过100. 对于60%的数据,S长度不超过1000. 对于100%的数据,S长度不超过800000. 输出 回文子串的数量 样例输入 abbab 样例输出 8 题解 利用Manacher,可以得到每个回文中心和其半径,不用去重,直接统计就好 #include <bits/stdc++.h>…
传送门 #1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符串中找到它们每一个的最长回文子串呢?” 小Ho奇怪的问道:“什么叫做最长回文子串呢?” 小Hi回答道:“一个字符串中连续的一段就是这个字符串的子串,而回文串…
题目 又一道可以称之为dp的题目,虽然看了别人的代码,但是我的代码写的还是很挫,,,,,, //看了题解做的简单的记忆化dp #include<stdio.h> #include<algorithm> #include<iostream> using namespace std; ][],dp[][]; ,-,,}; ,,,-}; int n,m; int dfs(int x,int y) { ; if(dp[x][y])return dp[x][y]; ;i<;…
本次题目因为比较简单,除了个别题目,其余题目我只写一个思路不再贴代码. 先是Div.2的题解 A题奇怪的优化,把递归函数改成2*fun(...)即可,其实看懂程序也不难,就是求a*2b: B题你会string吗,直接String变量比较大小即可 C题数数,没有卡正常方法,可以直接把数转成二进制找1个数,此时复杂度为O(logN),更快的方法是使用__builtin_popcount函数,复杂度为O(m(m为数二进制中1的个数)): D,E题,看Div.1中本题解释 所有代码都可以10行内写出,所…
传送门 题目大意:求最长回文串 题解:Manacher 代码: #include<cstdio> #include<cstring> #include<iostream> using namespace std; ; ],str[maxn*]; ],len; void getstr() { ; str[k++]='$'; ;i<len;i++) str[k++]='#', str[k++]=s[i]; str[k++]='#'; len=k; } void Man…
简单的区间 $update$ 终于$AC$了 找到$(sum[r]+sum[l](sum表示以中间点为基准的sum)-mx)\%k==0$的点 注意这里$sum$表示是以$mid$为基准点,(即$sum[l]$为后缀和,$sum[r]$为前缀和) 回忆$(sum[r]-sum[l])\%k==0$这个经典问题做法(入阵曲简化版),开桶,桶里维护$sum[l]\%k$,那么$r$贡献就是桶里$sum[r]\%k$个数 于是这个题开桶维护$sum$,问题转化为求$max$即可 记录$max$位置是否…
什么叫分层图最短路,我不会/kk 感觉自己做法和其他题解不大一样所以过来发篇题解了. 未刻意卡常拿下最优解 题目大意 就是说给你一个 \(n \times n\) 的网格图和 \(m\) 个可换乘点,然后你只能在同一行或同一列(如果在行上移动,就不能在列上移动:反之同理)上移动,除非这个点是可以换乘的.每次走一格花费 \(2\) 费,换乘花费 \(1\) 费,求从 \((sx,sy)\) 到 \((fx,fy)\) 的最小费用. 其中:\(n \leqslant 20000,m \leqslan…
郑州轻工业学院有一个大赛,把几个有趣的题目分享一下.下面是题目连接,喜欢了就点点... 斗破苍穹 礼上往来 统计人数 神の数 炉石传说 Mathematics and Geometry 马拉松后记 斗破苍穹 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 205  Solved: 46SubmitStatusWeb Board Description 有一天, 我们帅气的LC来到加玛帝国. 有时候, 缘分就是这么奇怪, LC和加玛帝国的公主一见钟情…