题目


分析

这些回文长度可以提供相等或者不等的信息,

不等的直接连边强制不等,相等用并查集合并连通块,

但是这样判断是\(O(n^2)\),考虑这些回文长度当用Manacher求时,

所有的回文长度都会在\(O(n)\)的时间内求出来,

所以可以模拟Manacher的过程完成上述操作,时间复杂度\(O(n)\)


代码

#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
const int N=100011; struct node{int y,next;}e[N<<2];
int p[N<<1],f[N],et=1,n,as[N],col[N],v[31],upd,Mx;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline signed min(int a,int b){return a<b?a:b;}
inline signed getf(int u){return f[u]==u?u:f[u]=getf(f[u]);}
inline void Merge(int x,int y){
rr int fa=getf(x),fb=getf(y);
if (fa!=fb) f[fa]=fb;
}
inline void add(int x,int y){
e[++et]=(node){y,as[x]},as[x]=et;
e[++et]=(node){x,as[y]},as[y]=et;
}
signed main(){
n=iut(),Mx=n<<1|1,p[1]=p[Mx]=1;
for (rr int i=1;i<=n;++i) p[i<<1]=iut()+1;
for (rr int i=1;i<=n;++i) f[i]=i;
for (rr int i=1;i<n;++i) p[i<<1|1]=iut()+1;
rr int mid=1,mx=1;
for (rr int i=2;i<=n*2;++i){
rr int now=i<mx?min(p[mid*2-i],mx-i):1;
for (rr int j=now;j<p[i];++j)
if (!((i-j)&1)&&!((i+j)&1))
Merge((i-j)>>1,(i+j)>>1);
if (p[i]<i&&i+p[i]<=Mx) add((i-p[i])>>1,(i+p[i])>>1);
if (i+p[i]-1>mx) mid=i,mx=i+p[i]-1;
}
for (rr int i=1;i<=n;++i)
if (!col[getf(i)]){
v[0]=++upd;
for (rr int j=as[i];j;j=e[j].next)
if (e[j].y) v[col[getf(e[j].y)]]=upd;
while (v[col[getf(i)]]==upd) ++col[getf(i)];
}
for (rr int i=1;i<=n;++i) putchar(col[getf(i)]+96);
return 0;
}

#Manacher,并查集#洛谷 3279 [SCOI2013]密码的更多相关文章

  1. 【简单数据结构】并查集--洛谷 P1111

    题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...

  2. 【洛谷】P5348 密码解锁

    [洛谷]P5348 密码解锁 很显然我们可以推导出这个式子 设\(a(m)\)为\(m\)位置的值 \[ \mu(m) = \sum_{m | d} a(d) \\ a(m) = \sum_{m|d} ...

  3. 【BZOJ-2342】双倍回文 Manacher + 并查集

    2342: [Shoi2011]双倍回文 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1799  Solved: 671[Submit][Statu ...

  4. BZOJ 2342 [Shoi2011]双倍回文(manacher+并查集)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2342 [题目大意] 记Wr为W串的倒置,求最长的形如WWrWWr的串的长度. [题解] ...

  5. 洛谷 U6850 手机密码

    U6850 手机密码 题目背景 小明的手机上设了一个由四个数字组成的密码,但是小明自己的记性不好,但又不想把密码直接记在纸上,于是便想了一个方法. 题目描述 小明有四行数字,每行数字都有n[i](&l ...

  6. [NOIP2012] 提高组 洛谷P1079 Vigenère 密码

    题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...

  7. 洛谷 P1914 小书童——密码【字符串+模拟】

    P1914 小书童——密码 题目背景 某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你. 题目描述 蒟蒻虽然忘记密码,但他还记得密码是由一串字母组成.且 ...

  8. 洛谷——P1920 成功密码

    P1920 成功密码 题目描述 void_rank匪别人的书来看,原本想看杂志颓废的,结果不小心拿错拿成了被导师称作旁门左道的高中数学杂志<成功密码>.数学差得不行的void_rank实在 ...

  9. 洛谷P1481 魔族密码(LIS)

    题意 题目链接 给出一堆字符串,若一个串是另一个串的前缀 ,那么它们可以连接在一起 问最大的链接长度 Sol LIS沙比提其实是做完了才看出是LIS #include<cstdio> #i ...

  10. 洛谷P1079 Vigenère 密码

    题目链接:https://www.luogu.org/problemnew/show/P1079

随机推荐

  1. Windows Docker Destop修改默认镜像文件位置

    0.首先关闭docker destop. 1.通过Everything或者资源管理器找到以.vhdx结尾的文件所在的位置,这些就是docker镜像路径 2.我的路径:C:\Users\Administ ...

  2. Xilinx GTH 简介 ,CoaXpress FPGA PHY 部分

    什么是GTH GTH 是Xilinx UltraScale系列FPGA上高速收发器的一种类型,本质上和其它名称如GTP, GTX等只是器件类型不同.速率有差异:GTH 最低速率在500Mbps,最高在 ...

  3. 【Azure APIM】在APIM中实现JWT验证不通过时跳转到Azure登录页面

    问题描述 在APIM中配置JWT策略,验证JWT,如果认证失败,则跳转到 Azure Entra ID 的 Login 页面. 问题解答 要实现JWT验证失败后,跳转到 Azure Entra ID ...

  4. Java //手动输入3个数,并从小到大排序

    1 //手动输入3个数,并从小到大排序 2 //import java.util.Sanner; 3 4 System.out.println("请输入第一个数:"); 5 Sca ...

  5. win10图标异常显示空白,WiFi图标消失等情况解决方案

    出现WiFi图标异常不显示,但是网络却正常,以下为解决方案: Win + R 快捷键调出运行框,输入%USERPROFILE%\AppData\Local,找到IconCache.db文件并删除,之后 ...

  6. 获取input[type="checkbox"]:checked 所在tr中特定元素

    1.要求如下  2.html源码 <div class="btn"> <button type="button" onclick=" ...

  7. Android自定义View使用系统自有属性

    原文链接: Android自定义View使用系统自有属性 - Stars-One的杂货小窝 本篇默认各位有自定义View的相关知识,本篇只作为一个小知识点补充 有这样一种情况,比如说我们的一个自定义V ...

  8. .NET开源快速、强大、免费的电子表格组件

    前言 今天大姚给大家分享一个.NET开源(MIT License).快速.强大.免费的电子表格组件,支持数据格式.冻结.大纲.公式计算.图表.脚本执行等.兼容 Excel 2007 (.xlsx) 格 ...

  9. 启动Eclipse 弹出Failed to load the JNI shared library jvm.dll解决方案

    原因:eclipse的版本与jdk版本不一致 解决方案:两者都安装64位的,或者都安装32位的,不能一个是32位一个是64位.

  10. HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(3) ---真机调试(实例分析)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...