POJ--3974 Palindrome(回文串,hash)
链接:点击这里
#include<iostream> #include<algorithm> #include<stdio.h> #include<cstring> using namespace std; #define maxn 1000005 #define LL long long #define ull unsigned long long const LL P = 131; ull p[maxn+10],f[maxn],ff[maxn]; int main(){p[0]=1;for(int j=1;j<=maxn;j++){p[j]=p[j-1]*P;}string s;int tot=1;while(cin>>s){if(s=="END") break;f[0]=0,ff[0]=0;int ans=0;int len=s.size();for(int j=1;j<=len;j++){f[j]=f[j-1]*P+s[j-1]-'a'+1;}for(int j=len;j>=1;j--){ff[j]=ff[j+1]*P+s[j-1]-'a'+1;}for(int j=1;j<=len;j++){int l=1,r=min(len-j,j),mx=0;while(l<=r){ // 偶数int mid=(l+r)/2;int l1=j-mid+1,r1=j;int l2=j+1,r2=j+mid;LL ll=f[r1]-f[l1-1]*p[r1-l1+1];LL rr=ff[l2]-ff[r2+1]*p[r2-l2+1];if(ll==rr){mx=max(mx,mid);l=mid+1;}else r=mid-1;}ans=max(ans,2*mx);l=1,r=min(len-j,j-1),mx=0;while(l<=r){ //奇数int mid=(l+r)/2;int l1=j-mid,r1=j-1;int l2=j+1,r2=j+mid;LL ll=f[r1]-f[l1-1]*p[r1-l1+1];LL rr=ff[l2]-ff[r2+1]*p[r2-l2+1];if(ll==rr){mx=max(mx,mid);l=mid+1;}else r=mid-1;}ans=max(ans,2*mx+1);}//cout<<ans<<endl;printf("Case %d: %d\n",tot++,ans);}return 0; }
转载于:https://www.cnblogs.com/DyLoder/p/10200569.html
POJ--3974 Palindrome(回文串,hash)相关推荐
- LeetCode Palindrome Partitioning(dfs +回文串 )
问题:给出一个字符串,输出回文串,使得拼接后为原来的字符串 思路:先通过动态规划得到所有的回文串,然后使用深度优先搜索得到所有的解 具体代码参考: https://github.com/wuli249 ...
- PAT甲级1136 A Delayed Palindrome :[C++题解]回文串和高精度并输出过程
文章目录 题目分析 题目链接 题目分析 此题和PAT甲级1024 Palindromic Number:[C++题解]回文串和高精度加法 一样.区别是多了输出整个计算过程. 下面是主要知识点. 一个判 ...
- HDU - 6599 I Love Palindrome String (回文树+Manacher、回文树+hash)
题目链接 题意 一个长度为3e5的字符串,求长度为iii的字符串满足字符是回文串而且字符串的前一半也是回文串的个数 思路 回文数求出所有的回文字符串,然后用Manacher或者Hash判断是否符合条件 ...
- leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
题目 https://leetcode.com/problems/shortest-palindrome/ 题解 看了 Related Topics - Rolling Hash 下的相关题目,看到了 ...
- 【CodeForces - 798A】Mike and palindrome (回文串,水题,字符串问题)
题干: Mike has a string s consisting of only lowercase English letters. He wants to change exactly one ...
- C#LeetCode刷题之#125-验证回文串(Valid Palindrome)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3899 访问. 给定一个字符串,验证它是否是回文串,只考虑字母和数 ...
- C#LeetCode刷题之#409-最长回文串(Longest Palindrome)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3788 访问. 给定一个包含大写字母和小写字母的字符串,找到通过这 ...
- 【细节实现 回文串12】LeetCode 564. Find the Closest Palindrome
LeetCode 564. Find the Closest Palindrome 本博客转载自:http://www.cnblogs.com/grandyang/p/6915355.html Sol ...
- 【To Understand!回文串8 哈希表】LeetCode 336. Palindrome Pairs
LeetCode 336. Palindrome Pairs Solution1:我的答案 最笨的方法,果然因为时间复杂度太高而无法AC-- 难怪是hard 只是记录一下-- class Soluti ...
- 【回文串7】LeetCode 234. Palindrome Linked List
LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...
最新文章
- ASP.NET MVC4中调用WEB API的四个方法
- 华人博士提出原型对比学习,非监督学习效果远超MoCo和SimCLR
- java访问glusterfs_GlusterFS: 访问权限设置
- 一种QC-LDPC码对突发噪声抑制的MATLAB仿真
- MyBatisPlus_AR篇_入门试炼_06
- Gulp新手入门教程
- Search in Rotated Sorted Array
- 熟练使用Jmeter,这个知识点你一定要看
- 编程语言对比 引用数据类型-字典
- sharepoint搜索pdf文档
- 基于win10系统下用vs2019编译flightgear2020.4.0
- VS2015的下载地址和安装教程
- Python爬虫 - 01.实现贴吧一键签到
- 哈希值(hashCode)
- Unity Shader :实现漫反射与高光反射
- 2021年中国化学纤维行业发展现状分析,循环再利用或为产品未来发展方向「图」
- SQL SERVER 去掉字符串左边的0
- Delphi Thread 线程2
- bzoj4605 崂山白花蛇草水(动态开点线段树逃替罪羊重构K-D tree)
- Java 语音识别(百度语音API)
热门文章
- MacOS 的软件包管理工具 HomeBrew 详解
- java依赖_java 依赖、组合、聚合与继承
- 根据录入的计算公式计算_小规模纳税人增值税计算公式是什么,什么人能被称为小规模纳税人?- 理财技巧...
- mysql 存储过程求和_MySQL - 存储过程和函数
- python 提升效率_@Python 程序员,如何最大化提升编码效率?
- C++ 11 深度学习(六)智能指针综述
- java面试题三_最全的java面试题目三
- C语言变量的定义包括变量存储类型和变量的什么?
- php mysql 实现原理_PHP底层和mysql的通信原理
- ubuntu中安装sublime text3用于python编程