hdu4513 最小回文单调子串
来源:互联网 发布:美工怎么提升审美观 编辑:程序博客网 时间:2024/05/16 07:49
一开始看到题目就像到了Manacher算法,然后在判断中加了个条件,交上去Wrong了,改了改又交上去还是Wrong,,只好写了个暴力程序检查,没想到暴力程序居然也Wrong。只好自己做数据差错,卡了1一个小时总算找到罪恶的根源了,主要是刚刚做完4512,把条件记成严格递增了。。。
ACcode:
#include<cstdio>#include<cstring>const int ns=222222;int n,id,mx,ans;int h[ns],p[ns];int Min(int a1,int a2){ return a1<a2?a1:a2;}int Max(int a1,int a2){ return a1>a2?a1:a2;}int main(){ int T; scanf("%d",&T); while (T--) { scanf("%d",&n); n=n+n+2; h[0]=-2; h[n]=-3; for (int i=1;i<n;i++) { if (i&1) h[i]=-1; else scanf("%d",&h[i]); } ans=1,mx=id=0; for (int i=1;i<n-1;i++) { p[i]=mx>i?Min(mx-i,p[id+id-i]):1; while (h[i+p[i]]==h[i-p[i]]) { if (h[i+p[i]]==-1) p[i]++; else if ((i+p[i]-2<i)||(h[i+p[i]]<=h[i+p[i]-2])) p[i]++; else break; } if (p[i]+i>mx) mx=p[i]+i,id=i; ans=Max(ans,p[i]); } printf("%d\n",ans-1); } return 0;}
- hdu4513 最小回文单调子串
- hdu4513最长递增回文串
- leetcode回文子串拆分-最小拆分次数
- hdu4513 最长递增回文序列 manacher + dp
- 最小回文串划分
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 最长回文子串
- 回文子串算法
- a的b次方(2≤a,b≤100)中共有多少个不同的数?
- CSDN博客编辑技巧收集
- 给goahead-3.1.0-2 web服务器 增加 任意盘符文件下载功能
- 黑马程序员: 基础加强之静态导入,可变参数,增强for,自动装箱,享元模式,枚举
- SQL SERVER 中 GO 的用法
- hdu4513 最小回文单调子串
- JMS 使用SSL 连接Websphere MQ出现的问题 WIN7平台
- c++ inline
- 我的iOS作品
- How to Fold a Julia Fractal
- 重新设置tomcat 登录时用户名和密码
- 黑马程序员:基础加强之反射机制和内省
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
- 我ide