JZOJ 2682 【WC2012选拔12.17】最长双回文串

【随机化贪心】【动态规划】【NOI2010】成长快乐 【问题描述】 Nemo是一条无忧无虑的小鱼,它的初始体重为w0。可爱的Nemo希望自己能够尽快地成长,因此需要吃尽量多的食物。Nemo最喜爱的食物是海里的小虾。 已知Nemo对食物的情况了解如下:大海里共有n只小虾,从1到n编号,其中编号为i的小虾的重量为wi。将大海看作一个X-Y坐标系,在0时刻编号为i的小虾所在的位置为(xi, yi)。小虾在大海中作匀速直线运动,其中编号为i的小虾的速度向量为 阅读详情

Description:

顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。
输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。
对于100%的数据,2≤|S|≤105。

题解:

manacher的裸题。
先用马拉车求出r数组。
显然可以先枚举X部分的回文中心i,对于每一个i,目标就是找到最大的j,满足(j>i+r[i]-1)and(j - r[j]<=i+r[i]-1)。
倒着枚举i,用个树状数组维护一下即可。

Code:

#include<cstdio>
#include<cstring>
#define fo(i, x, y) for(int i = x; i <= y; i ++) 
#define fd(i, x, y) for(int i = x; i >= y; i --)
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
#define low(x) ((x) & -(x))
using namespace std;

const int N = 100005 * 2;

int n, r[N], f[N];
char s[N];

void Build() {
    int p = 0, mx = 0;
    fo(i, 1, n) {
        r[i] = mx > i ? min(r[p * 2 - i], mx - i + 1) : 1;
        while (i > r[i] && s[i - r[i]] == s[i + r[i]]) r[i] ++;
        if(i + r[i] - 1 > mx) p = i, mx = i + r[i] - 1;
    }
}

void add(int x, int y) {
    while(x <= n) {
        f[x] = max(f[x], y);
        x += low(x);
    }
}

int find(int x) {
    int s = 0;
    while(x) {
        s = max(s, f[x]);
        x -= low(x);
    }
    return s;
}

int main() {
    freopen("a.in", "r", stdin);
    scanf("%s", s + 1);
    n = strlen(s + 1);
    fd(i, n, 1) s[i * 2] = s[i];
    fo(i, 1, n) s[i * 2 - 1] = '@';
    n = n * 2 + 1; s[n] = '@';
    Build();
    int ans = 0;
    fd(i, n, 1) {
        int s = i + r[i] > n ? find(i + r[i] - 1) : find(i + r[i]);
        if(s > 0) ans = max(ans, s - i);
        add(i - r[i] + 1, i);
    }
    printf("%d", ans);
}
14自由度汽车动力学模型 多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。 阅读详情

相关推荐

RTL8306交换机芯片与FPGA联调实战:5个网口+1个MAC的配置避坑指南

本文详细解析了RTL8306交换机芯片与FPGA联调中的关键技术难点,特别是MAC5寄存器的配置陷阱和PHY页切换机制。通过实战案例和优化策略,帮助开发者高效配置5个网口+1个MAC的工业级网络设备,提升系统稳定性和实时性。

vodka的博客 1097

P5934 [清华集训2012]最小生成树(思维+最小割)

LINK 很妙的一题,但看完做法后才深知自己多傻逼 考虑怎样的边(u,v,l)(u,v,l)(u,v,l)可能在最小生成树上 首先我们会把权值小于lll的边全部用来构造最小生成树 此时如果u,vu,vu,v不连通,我们就会选择这条边 所以问题的实质是让权值小于lll的边连通性达到最大后,u,vu,vu,v仍然不连通 就是最小割了!!!把前面的边都加上去构成无向图,跑最小割 最大生成树同理 #include <bits/stdc++.h> using namespace std; const in

jziwjxjd的博客 626

OpenDRIVE车道计算避坑指南:为什么你的poly3曲线总对不齐?

本文深入解析OpenDRIVE标准中车道几何计算的三大核心难题:参数化三次多项式(ParamPoly3)的坐标系转换与参数映射、车道偏移与宽度的优先级判定,以及螺旋线(Spiral)接续的平滑性保障。通过实战案例与代码示例,提供了一套避免车道线错位与曲率不连续的精确计算与验证方法,是高精地图开发与仿真场景构建的实用避坑指南。

q9w8e7r6t5的博客 424

【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!

我都不好意思发题解了,看这篇博吧。(飞行路线的,基本一样) http://blog.csdn.net/vmurder/article/details/40075989 同学做了好久,我害怕题里有坑,又重写了一遍~~~ 7分钟,都不乐意测样例测点就A了啊哈。 #include #include #include #include #define N 55 #def

辗转山河弋流歌 2708

ESP32水墨屏日历实战:低功耗自动更新与HTTPS数据解析

本文详细介绍了ESP32水墨屏日历项目的开发实践,重点讲解了低功耗自动更新与HTTPS数据解析的实现方法。通过ESP32的自动休眠功能和水墨屏的零功耗特性,结合HTTPS请求安全获取网络数据,实现了高效节能的桌面日历应用。项目代码开源,适合物联网开发者参考。

xx56789的博客 777

详解TCP/IP五层模型

TCP/IP模型是一个网络通信体系结构,由五层组成,每一层都有其特定的功能。应用层传输层网络层数据链路层物理层每一层都有不同的责任,通过这种层次结构,网络通信可以更有效地进行。

2201_75437633的博客 1万+

BZOJ 2594 LCT维护最小生成树

调了好久啊,果然不是这错一点就是那错一点……         我们可以把题目倒过来做,时间倒流,删边变成加边,对于每个查询(u,v),抓出来一条链记录最大值即可         对于每个加入(u,v),先是找到u,v边上的最大值,如果当前u,v         代码写得很丑,BZOJ上过不了,反正自己测过了~ #include #include #include using na

LemonMZc的专栏 1629

华三模拟器实战:3分钟搞定路由器DHCP地址池配置(附常见错误排查)

本文提供华三模拟器中路由器DHCP地址池的实战配置指南。通过分步详解,帮助用户在3分钟内完成基础设置,并深入讲解多地址池、中继配置等进阶应用。文章重点剖析了DHCP服务无法工作的常见原因,提供从客户端到服务器的系统性排错方法,助力快速定位并解决地址分配失败、获取参数错误等典型问题。

w1x2y3的博客 360

详细讲解最小生成树

要知道什么是最小生成树(最小代价生成树),就要知道生成树的概念。 生成树:包含图中全部顶点,但只有足以构成一棵树的n-1条边。 而最小生成树就是在生成树的条件中,再加上一个条件:使得权值之和最小。 我们可以将其抽象化为这样一个例子: 假设要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路。这时,自然会考虑这样一个问题:如何在最节省经费的前提下建立这个通信网络。 那么,怎么构造最小生成...

weixin_43978453的博客 4190

手把手教你用Cadence Virtuoso完成LNA全套仿真:基于SpectreRF手册的实战补充

本文详细指导如何使用Cadence Virtuoso和SpectreRF完成LNA的全套仿真,涵盖噪声仿真、增益压缩、THD分析及双音IP3测量等关键步骤。针对官方手册中的常见问题,提供了12个实战解决方案,包括hbnoise函数选择、双音信号源配置等,帮助工程师高效完成射频IC设计。

weixin_29102619的博客 524

深入解析UDS 0x19服务:DTC状态掩码与故障诊断实战

本文深入解析了UDS诊断协议中的核心0x19服务(ReadDTCInformation),重点拆解了DTC状态掩码(DTCStatusMask)的八个状态位及其在故障生命周期中的联动逻辑。通过实战案例,详细说明了从故障发生、确认到清除的全过程,并介绍了如何利用该服务进行深度诊断,包括读取扩展数据(如冻结帧)和避免常见开发误区,是理解汽车ECU故障管理机制的关键。

weixin_29248313的博客 323

JZOJ2682. 【WC2012选拔12.17】最长双回文串

Description顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。Input一行由小写英文字母组成的字符串S。Output一行一个整数,表示最长双回文子串的长度。Sample Inputbaacaabb

lijf2001的博客 306

Experion PKS系列开发:I_O模块_ExperionPKS与第三方I-O模块的集成

通过上述步骤,可以成功将第三方I/O模块集成到Honeywell Experion PKS系统中,实现对现场设备的监视和控制。集成过程中需要注意选择合适的第三方模块,配置正确的通信参数,编写正确的控制逻辑,并进行充分的测试,以确保系统的稳定性和可靠性。不同的通信协议(如Modbus、Profibus、Ethernet/IP、CANopen、OPC UA)有其独特的配置和编程方法,但总体流程相似。在实际应用中,根据项目需求选择合适的协议和模块,可以有效提高系统的灵活性和适应性。

zhubeibei168的博客 1103

Jzoj2682 最长双回文串

顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。   输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 PAM模(mu)板题<非常好写<弄出PAM让后记录每个结尾的最长回文串让后反过来在建一次加起来取max就好了 当...

dianning8393的博客 179

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

2660: [Beijing wc2012]最多的方案

2660: [Beijing wc2012]最多的方案 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 483  Solved: 287 [Submit][Status][Discuss] Description        第二关和很出名的斐波那契数列有关,地球上的OIer都知道:F1=1, F2=2, Fi = Fi-1 + Fi

CRZbulabula的博客 627

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

BZOJ2662: [BeiJing wc2012]冻结(洛谷P4822)

分层图最短路 BZOJ题目传送门 洛谷题目传送门 同这道题,稍微改一改就好了。 代码: #include&lt;queue&gt; #include&lt;cctype&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #define N 5005 #define M 500005 #defin...

forezxl的博客 357

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【BeiJing wc2012】【BZOJ2661】连连看

Description凡是考智商的题里面总会有这么一种消除游戏。不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏。我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y)的平方差x2-y2是一个完全平方数z2,并且y与z互质,那么就可以将x和y连起来并且将它们一起消除,同时得到x+y点分数。那么过关的要求就是,消除的数对尽可能多的前提下,得到足够的分数。快动手动

CreationAugust is 14 years old forever 1676

2659: [Beijing wc2012]算不出的算式

2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 1208  Solved: 711 [Submit][Status][Discuss] Description 算不出的算式 背景: 曾经有一个老掉牙的游戏放在我面前,我没有珍惜。直到这个游戏停产才追悔莫及。人世间最痛苦的事情莫

CRZbulabula的博客 567

2662: [BeiJing wc2012]冻结

最短路水题。 把每个点拆成0,1,2,3......k共k+1个点,表示到达该点时用了几次膜法(雾),然后再求最短路就好了,每次松弛的时候有两种,用或不用膜(划掉)魔法。 其实spfa的思想很像动规的。。。。。 #include #include #include #include using namespace std; const int inf=1e9; struct Edge{int

月下沙茶树 429

[BZOJ 2659][Beijing wc2012]算不出的算式

算不出的算式Time Limit: 3 Sec Memory Limit: 128 MBDescription曾经有一个老掉牙的游戏放在我面前,我没有珍惜。直到这个游戏停产才追悔莫及。人世间最痛苦的事情莫过于此,如果上天给我一个再玩一次的机会,我一定要,通关!题目描述: 如果你真的很想玩这个游戏,那么就先看看我的题目吧,搞不定这些的话是没办法通关的哟。第一关其实很简单,只有一个关闭的有密码锁的

slongle的专栏 902

【BZOJ】2521: [Shoi2010]最小生成树-最小割

题解 想到各种贪心都被叉掉了QWQ 只要以选定边的左右端点分别为源汇点跑一遍最小割就好了。这样可以保证这条一定选入最小生成树。最小割就是答案。 ps 无向图网络流要双向连边 代码 #include&amp;amp;lt;cstdio&amp;amp;gt; #include&amp;amp;lt;cstring&amp;amp;gt; #include&amp;amp;lt;cctype&amp;amp;gt; #include&am

远行客 396

BZOJ 2654: tree【WQS二分+最小生成树】

2654: tree Time Limit: 30 Sec Memory Limit: 512 MB Description 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 题目保证有解。 Input 第一行V,E,need分别表示点数,边数和需要的白色边数。 接下来E...

aiweiluan5095的博客 216

P5934-[清华集训2012]最小生成树【最小割】

正题 题目链接:https://www.luogu.com.cn/problem/P5934 题目大意 给出nnn个点mmm条边的一张图,再加入一条边(u,v,L)(u,v,L)(u,v,L)求至少删掉多少条边可以使得这条边即在最小生成树上又在最大生成树上。 1≤n≤2×104,1≤m≤2×1051\leq n\leq 2\times 10^4,1\leq m\leq 2\times 10^51≤n≤2×104,1≤m≤2×105 解题思路 稍微思考一下就不难发现这两个问其实是没有影响的,因为第一个问显

QuantAsk 451

Uoj #274. 【清华集训2016】温暖会指引我们前行 LCT维护边权_动态最小生成树

Uoj #274. 【清华集训2016】温暖会指引我们前行 LCT维护边权_动态最小生成树 Code: 行#include<bits/stdc++.h> #define ll long long #define maxn 1000000 #define inf 1000000000000 using namespa...

EM LGH 235

BZOJ2659: [Beijing wc2012]算不出的算式

转化成直线下点数#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; char c; #define ll long long inline void read(ll &a) { a=0;do c=getchar();while(c

Don't fake it till you made it 637
上一篇: Manacher模板
下一篇: 【GDOI2017模拟9.21】妮厨的愤怒
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值