ABB (2020牛客国庆集训派对day1)

ABB

题意:

长度为n的字符串,问最少添加多少字符可以使其构成回文字符串

题解:

最长回文字符串我的第一反应是manacher马拉车算法,那我们直接马拉车找到已有最长回文串,然后总长度减去不就是答案吗?非也 ~ ~ 。注意是让我们构造最长回文字符串,我们会发现,如果我们用马拉车找到的最长回文串的最右端不是字符串最右端,那此情况就相当于作废
比如:
murderforajarofz
我们可以找到最长回文串forajarof,但是最后一位z并不在里面,那你无论怎么构造也用不到forajarof这个回文串,也就是我们要找最长的带最后一个字符的回文字符串
我们直接在manacher的基础上改就可以,原本式子中的ans,我们每查找完一次清零,也就是如果找到的回文串不是带尾的不要,如果带尾保留最大值
详细看代码

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 9*1e5+4;
char s[maxn];
char str[maxn];
int p[maxn];//表示以i为中心的最长回文子串长度,int init() {int len = strlen(s);str[0] = '@', str[1] = '#';int j = 2;for (int i = 0; i < len; ++i) str[j++] = s[i], str[j++] = '#';str[j] = '\0';
//    cout<<j<<endl;return j;
}
int manacher() {int len = init(),sum=-1; int mx = 0;//同时记录一个当前延伸最远的回文子串 int id = 0;//对称中心 int ans = -1;for (int i = 1; i < len; ++i) {if (i < mx) p[i] = min(p[id * 2 - i], mx - i);else p[i] = 1;while (str[i + p[i]] == str[i - p[i]]) p[i]++;//if(i+p[i]==len-1) if (p[i] + i > mx) mx = p[i] + i, id = i;//   cout<<"id="<<id<<endl;ans = max(ans, p[i] - 1);if(mx==len)sum=max(sum,ans);//cout<<"ans="<<ans<<endl;//cout<<"mx="<<mx<<endl;//cout<<"sum="<<sum<<endl;ans=0;}return sum;
}
int main() 
{int t;cin>>t;for(int i=0;i<t;i++)cin>>s[i];if(manacher()==0)cout<<t-1<<endl;else cout <<t-manacher()<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软对开发者献真爱,全面支持开源,加速研发云升级

全球首秀&#xff1a;支持 Java 和 Python 的 Visual Studio Live Share 协作服务与 IntelliCode 人工智能辅助编程&#xff0c;适用于物联网和智能边缘的自动机器学习能力&#xff08;Auto ML&#xff09;&#xff1b;Visual Studio App Center 提供一站式跨平台移动应用开发体…

Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)

今天看不下去数电vp一场div2&#xff0c;搞A搞了很长时间&#xff0c;导致后面没有时间写&#xff0c;不过今天补题的时候全是独立补出来的没有看题解 vp3题&#xff0c;补3题 A - Kids Seating 最开始想的是与质数有关&#xff0c;乱七八糟搞了半天&#xff0c;结果最后回头…

【数论】GCD(P2568)

正题 P2568 题目大意 求满足1≤x,y≤n1\leq x,y\leq n1≤x,y≤n且gcd(x,y)primegcd(x,y)primegcd(x,y)prime的数对(x,y)(x,y)(x,y)的个数 解题思路 题目即求 ∑i1n∑j1n[gcd(i,j)prime]\sum_{i1}^n\sum_{j1}^n[gcd(i,j)prime]i1∑n​j1∑n​[gcd(i,j)prime] 可以考虑先枚举…

AT4502-[AGC029C]Lexicographic constraints【二分,栈】

正题 题目链接:https://www.luogu.com.cn/problem/AT4502 题目大意 给出nnn个长度SSS&#xff0c;求一个最小mmm表示用大小为mmm的字符集构造出nnn个符合对应长度的字符串使得字符串按照给出顺序从小到大。 1≤n≤2105,1≤Si≤1091\leq n\leq 2\times 10^5,1\leq S_i\leq 10^…

2020牛客国庆集训派对day1 C. Bob in Wonderland

Bob in Wonderland 题意&#xff1a; 一棵树&#xff0c;问最少移动多少次边可以使其变成一个链&#xff1f; 移动是指&#xff1a;从原位置拆下并连到新位置&#xff0c;这样算一次 题解&#xff1a; 错误思路 我一开始在想既然求最少移动次数&#xff0c;那我们就尽可能…

Ocelot简易教程(七)之配置文件数据库存储插件源码解析

上篇文章Ocelot简易教程&#xff08;六&#xff09;之重写配置文件存储方式并优化响应数据 给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储到数据库中。并没有对实现原理进行相应的阐述。今天抽空把实现的原理给大家说道说道。明白原理后&#xff0c;大家就可…

【数论】YY的GCD(P2257)

正题 P2257 题目大意 给你T组询问&#xff0c;每组询问给出n,m&#xff0c;让你求 1≤x≤n,1≤y≤m1\leq x\leq n,1\leq y\leq m1≤x≤n,1≤y≤m 且 gcd(x,y)primegcd(x,y)primegcd(x,y)prime 的方案数 解题思路 根据题意&#xff0c;有 ∑i1n∑j1m[gcd(i,j)prime]\sum_{i1}…

ASP.NET Core 2调用Azure云上的PowerBI报表展示

在开发企业应用中&#xff0c;报表功能是当之无愧的重头戏&#xff0c;如何将数据通过合适的报表呈现出来成为每个项目人员必需面临的问题。而找到一款合适的报表往往都需要考率价格、开发、风格、支撑等因素。那么&#xff0c;我在这里给大家介绍一款由微软提供的可视化报表工…

2020牛客国庆集训派对day1 Zeldain Garden

Zeldain Garden 题意&#xff1a; 问[L,R]内所有数的因子的数量和 题解&#xff1a; 如果传统暴力做肯定不行 我们来找找规律&#xff1a; 数字&#xff1a; 因子数目 1~n的因子数和 1 1 1 2 2 321/ 3 2 5311 4 3 84211 5 2 1052111 6 4 14 7 2 16 8…

CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】

正题 题目链接:https://www.luogu.com.cn/problem/CF585E 题目大意 给出一个大小为nnn的可重集TTT&#xff0c;求有多少个它的非空子集SSS和元素xxx满足 x∉S,gcd{S}>1,gcd(S,x)1x\notin S,gcd\{S\}>1,gcd(S,x)1x∈/​S,gcd{S}>1,gcd(S,x)1 1≤n≤51051\leq n\leq 5…

ABC182——F - Valid payments Editorial

F - Valid payments Editorial 大佬题解 看了述题解我才刚理解题目意思。 Here, both Lunlun and the clerk used the minimum number of coins needed to represent those amounts of money. 这句话意味着任何数都能用a1…ana_1\dots a_na1​…an​这些面值的货币唯一表示 并…

【数论】GCD SUM(P2398)

正题 P2398 题目大意 给出n&#xff0c;求∑i1n∑j1ngcd(i,j)\sum_{i1}^n\sum_{j1}^ngcd(i,j)i1∑n​j1∑n​gcd(i,j) 解题思路 考虑先枚举gcd&#xff0c;那么有 ∑d1nd∑i1n/d∑j1n/d[gcd(i,j)1]\sum_{d1}^nd\sum_{i1}^{n/d}\sum_{j1}^{n/d}[gcd(i,j)1]d1∑n​di1∑n/d​j…

AT4519-[AGC032D]Rotation Sort【dp】

正题 题目链接:https://www.luogu.com.cn/problem/AT4519 题目大意 给出一个长度为nnn的排列&#xff0c;每次可以选择一个区间&#xff0c;然后花费AAA的代价向左旋转&#xff08;最左边的丢到最右边&#xff09;或者花费BBB的代价向右旋转。 排升序序的最小花费。 1≤n≤50…

2020牛客国庆集训派对day2 VIRUS OUTBREAK

VIRUS OUTBREAK 文章目录题目描述输入描述:输出描述:题解&#xff1a;代码&#xff1a;题目描述 The State Veterinary Services Department recently reported an outbreak of a newly found cow disease. All cows found to have affected by the disease have since euthan…

Codeforces Round #684 (Div. 2)

A - Buy the String 要么全变成1要么全变成0要么一个都不改变&#xff0c;三种情况取最小。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<stack>…

聊聊如何设计千万级吞吐量的.Net Core网络通信!

作者&#xff1a;大石头时间&#xff1a;2018-10-26 晚上 20:00地点&#xff1a;QQ群-1600800内容&#xff1a;网络通信&#xff0c;网络库使用方式网络库设计理念&#xff0c;高性能要点介绍首先看下面这张很具有代表性的图&#xff0c;2018年5月份做的测试。当时单服务器得到…

2020牛客国庆集训派对day2 AKU NEGARAKU

来源&#xff1a;牛客网&#xff1a; 题目描述 1st Academy is an international leadership training academy based in Kuala Lumpur. Every year, the company trains thousands of people to be supplied to companies around the world. To be fair amongst all the tra…

P5540-[BalkanOI2011]timeismoney|最小乘积生成树【最小生成树,凸壳】

正题 题目链接:https://www.luogu.com.cn/problem/P5540 题目大意 给出nnn个点mmm条边边权是一个二元组(ai,bi)(a_i,b_i)(ai​,bi​)&#xff0c;求出一棵生成树最小化 (∑e∈Tae)(∑e∈Tbe)(\sum_{e\in T}a_e)\times(\sum_{e\in T}b_e)(e∈T∑​ae​)(e∈T∑​be​) 的情况下…

【数论】能量采集(P1447)

正题 P1447 题目大意 给出n,m&#xff0c;求2∑i1n∑j1m(gcd(i,j)−1)nm2\times \sum_{i1}^n\sum_{j1}^m(gcd(i,j)-1)n\times m2i1∑n​j1∑m​(gcd(i,j)−1)nm 解题思路 2∑i1n∑j1m(gcd(i,j)−1)nm2∑i1n∑j1mgcd(i,j)−nm2\times \sum_{i1}^n\sum_{j1}^m(gcd(i,j)-1)n\tim…

codeforces1440 E. Greedy Shopping

昨天晚上做完4题还有30分钟&#xff0c;感觉太晚了就没继续写&#xff0c;不过看了下E题感觉是一个线段树题目&#xff0c;今天中午看了看发现就是一个线段树上递归的询问问题&#xff0c;不过我之前没写过但是靠着日益强大的乱写能力竟然水出来了~~ E. Greedy Shopping 不难…