HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II
题意
吉哥又想出了一个新的完美队形游戏!
假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] … h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;
2、左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,第2个人和第m-1个人身高相同,依此类推,当然如果m是奇数,中间那个人可以任意;
3、从左到中间那个人,身高需保证不下降,如果用H表示新队形的高度,则H[1] <= H[2] <= H[3] …. <= H[mid]。现在吉哥想知道:最多能选出多少人组成新的完美队形呢?
思路
跟HDU 3068 最长回文(Manacher)差不多,也是求回文串长度,区别就是多了一个非递减的约束条件,加上判断即可。
代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <vector>using namespace std;const int N = 100009;
int s[N*2], p[N*2];int manacher(int len)
{int mx = 0, id = 0, ans = 1;p[0] = 0;for(int i=1; i<len; i++){p[i] = 1;if(mx > i)p[i] = min(mx-i, p[2*id-i]);while(s[i-p[i]] == s[i+p[i]] && s[i-p[i]] <= s[i-p[i]+2])p[i]++;if(i+p[i] > mx)mx = i+p[i], id = i;if(ans < p[i]-1)ans = p[i]-1;}return ans;
}int main()
{int T;scanf("%d", &T);while(T--){int n;scanf("%d", &n);s[0] = -1;for(int i=1; i<=n; i++){s[i*2-1] = 0;scanf("%d", &s[i*2]);}s[2*n+1] = 0;printf("%d\n", manacher(2*n+1));}return 0;
}
HDU 4513 吉哥系列故事――完美队形II(Manacher)相关推荐
- HDU - 4513 吉哥系列故事——完美队形II(Manacher)
题目链接:点击查看 题目大意:给出一个长度为n的数列,现在要求选出一段连续的数列,满足: 该数列为回文串 该数列的左半部分非严格递增 输出选取数列的最大长度 题目分析:因为是要选取连续的子串,并且还需 ...
- HDUOJ 4513 吉哥系列故事——完美队形II
HDUOJ 4513 吉哥系列故事--完美队形II Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] - ...
- 吉哥系列故事——完美队形II(hdu4513+Manacher)
吉哥系列故事--完美队形II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) T ...
- HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)
吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- 吉哥系列故事――完美队形II(HDU-4513)
Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形 ...
- hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
首先要去学习最长公共上升子序列LCIS.然后是对n*n效率的算法进行优化,这里要注意的是能够求出来的序列中间能够有一个最高的.刚開始将输入的数组进行逆置,写下来发现这可能存在问题. 只是详细是什么也没 ...
- HDU 4502 吉哥系列故事——临时工计划(动态规划)
吉哥系列故事--临时工计划 T ...
- HDU 4507 吉哥系列故事――恨7不成妻 数位DP
吉哥系列故事--恨7不成妻 Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- HDU 4535 吉哥系列故事——礼尚往来
http://acm.hdu.edu.cn/showproblem.php?pid=4535 题目大意: 有n个妹纸没人送给吉哥一个礼物,他决定进行合理的分配,即将这些礼物送回去,就不用花钱买新礼物了 ...
最新文章
- CentOS6.3.x86_64安装Trac
- oracle aul 索引,ORACLE恢復神器之ODU/AUL/DUL
- 执行sql语句提示[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY......错误的解决办法
- FFMPEG设置 cbr讨论
- python切面异常处理_Spring项目中优雅的异常处理
- 【需求工程】需求获取
- hadoop-02-关闭防火墙
- wepy小程序分包的版本
- 四面八方的意思是什么,怎么用四面八方造句?
- koa2 mysql sequelize_使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
- wifi抓包/苹果电脑mac book抓wifi sniffer packet
- 制作便携版 FireFox 火狐浏览器
- 【DIY分享】示波器(原理图+源码+仿真)
- excel 复制到mysql_excel导入数据到mysql
- item的介绍与使用-2.0
- 爬虫 Scrapy 学习:Spiders
- ionic emulate实时调试修改
- 鸿鹄云商平台--技术框架
- 高盛vr/ar研究报告
- RocketMQ消息发送源码解析