正题

luogu 5446


题目大意

定义对折为:以最后一个字符为对称轴翻转

问你一个字符串可能是由那些前缀对折若干次而来的


解题思路

先用Manacher求出回文长度

那么满足以下条件之一的前缀就是可行方案

  1. 最后一个字符的回文长度加上它的位置为n(后面若干字符和前面满足回文)

  2. 最后一个字符回文长度等于该字符串的长度,且对折后形成的字符串是可行方案


代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 1000010
using namespace std;
int t, n, s[N], l[N], p[N];
string str;
void Manacher()
{int mx = 0, mid = 0;for (int i = 1; i <= n; ++i){if (i < mx) l[i] = min(l[mid * 2 - i], mx - i);else l[i] = 1;while(s[i + l[i]] == s[i - l[i]]) l[i]++;if (i + l[i] > mx){mx = i + l[i];mid = i;}}return;
}
int main()
{scanf("%d", &t);while(t--){cin>>str;n = str.size();s[0] = '#';for (int i = 1; i <= n; ++i)s[i] = str[i - 1];s[n + 1] = 0;Manacher();memset(p, 0, sizeof(p));for (int i = n; i > 0; --i)if (i + l[i] > n || p[i + l[i] - 1] && l[i] == i)//满足条件p[i] = 1;for (int i = 1; i <= n; ++i)if (p[i])printf("%d ", i);putchar(10);}return 0;
}

【Manacher】绿绿和串串(luogu 5446)相关推荐

  1. zzuliOJ 2536: 绿绿学姐与AI 1

    题目网址:http://acm.zzuli.edu.cn/problem.php?id=2536 1.题目 2536: 绿绿学姐与AI 1 时间限制: 2 Sec  内存限制: 128 MB 提交: ...

  2. 902绿幽灵802绿钻(绿精灵)全部冠号

    902绿幽灵和802绿精灵的区别: 802的"南"字,方框内的两点(这里暂时叫为"羊头")是穿越出边框的,这在902中改正了: 802的"柱" ...

  3. CSP-S集训刷题记录

    $ CSP.S $ 集训刷题记录: $ By~wcwcwch $ 一.字符串专题: 1. [模板]$ manacher $ 算法 模型: 求出字符串 $ S $ 中所有回文串的位置及长度. $ sol ...

  4. 计算机真有趣作文,。。。。真有趣作文(共10篇)

    画画真有趣画画有趣极了.想画什么就画什么,想怎么画就怎么画.有一天下午,我去张萌家,和她一起画画.我说:"我们一起画画吧!"她说:"好啊!我们画什么呢?"我说: ...

  5. 关于网络的自动协商属性

    1.首先普及点网线的基础知识 网线分为:直通线,交叉线和反转线 直通线: 两头都是A类(规范的制作方法,100M接法) 交差线: 一头是A类,一头是B类 反转线: 一头是A类,另一头是完全把A反过来排 ...

  6. linux 修改ip地址_Day.19 变更IP地址

    一.怎么登陆交换机及服务器?去做网络和服务器配置? 登陆交换机和服务器的跳板不是一个. 登陆交换机的跳板机也是一个Linux服务器 1.ssh 交换机的跳板机(Linux服务器) ssh xxxxx ...

  7. 100m和1000m网线的常见制作方法

    100m和1000m网线的常见制作方法 100m和1000m网线的常见制作方法: 5类线(100m)的制作: a: 绿白(3).绿(6).橙白(1).蓝(4).蓝白(5).橙(2).棕白(7).棕(8 ...

  8. 计算机网络及应用 pdf,计算机网络及应用卷.pdf

    计算机网络及应用卷 华中科技大学文华学院 2010~2011 学年度第一学期<计算机网络与应用>期末考试试卷 课程性质:必修 使用范围: 专科 考试时间:2010 年 11 月 9 日 考 ...

  9. E2. Rubik‘s Cube Coloring (hard version) dp,满二叉树(2300)

    题意 : 其他条件和上题相同 这里已知n个点,给定每个点的编号和颜色 求这个树的合法染色方案,取模1e9 + 7 思路 : 首先预处理d[c][k]d[c][k]d[c][k]表示根结点颜色为c,深度 ...

最新文章

  1. 代码洁癖的春天!Java 效率工具之 Lombok
  2. SD-WAN技术解决方案有什么作用?—Vecloud
  3. 计算机视觉与深度学习 | 基于MATLAB 深度学习工具实现简单的数字分类问题(卷积神经网络)
  4. 第六届上海市大学生网络安全大赛 | Wp
  5. Anaconda安装tenserflow
  6. Java Web编程的主要组件技术——Hibernate入门
  7. 用vscode编写静态页面_开发中实用的VSCode插件推荐
  8. Yearn V2 Vaults Swap发布,目前未经审核
  9. 清华大学计算机考研资料汇总
  10. SQL语言的3种分类
  11. VAR模型及格兰杰因果检验——基于tushare平台的数据
  12. 伯克利摘得最佳论文 | ACL2022奖项公布
  13. console口和telnet登录交换机
  14. 世间谤我、欺我、辱我、笑我,为之奈何?
  15. matlab实现CAPM模型
  16. Python高级-前端-01-HTML和CSS
  17. Start booting from USB device boot failed 解决办法(老机器问题)
  18. Application entry file “background.ts“ in the “**dist_electron\win-unpacked\resources\app.asar“ does
  19. python如何换行
  20. uniapp-怎么把项目打包成H5

热门文章

  1. python搭建项目结构_Django搭建项目实战与避坑细节详解
  2. 计算机显卡是指什么时候,电脑哪个是显卡
  3. 软件层面可以做到重启本地串口吗_手机关机还是重启好?get这几招,手机更流畅...
  4. 单片机C语言中空语句,单片机C语言中的空语句.doc
  5. [JavaWeb-JavaScript]JavaScript_RegExp正则表达式对象
  6. [Java基础]生产者和消费者模式概述与案例分析
  7. [蓝桥杯2018初赛]乘积尾零-数论
  8. POJ 3159 Candies(差分约束+SPAF)
  9. windows路由表 重启后就还原了_绕过Apple id并可以随意重启的终极方案来了 (Windows下操作)...
  10. python输出文本 去掉引号_Python可以在文本文件中读取时从字符串中删除双引号吗?...