首页 > 编程语言 >马拉车算法

马拉车算法

时间:2024-01-20 16:36:29浏览次数:32  
标签:cnt center int 算法 maxn 拉车

马拉车算法

char s[maxn],ss[maxn];

int p[maxn];

int len,center;

int cnt=1;

void init(){

    memset(s,0,sizeof s);

    cnt=1,s[0]='@';

    int len=strlen(ss);

    for(int i=0;i<len;i++){

        s[cnt++]='#';

        s[cnt++]=ss[i];

    }

    s[cnt++]='#';

}

void manacher(){

    p[0]=center=0;

    int maxright=0;

    for(int i=1;i<cnt;i++){

        if(i<maxright) p[i]=min(maxright-i,p[2*center-i]);

        else p[i]=1;

        while(s[i-p[i]]==s[i+p[i]]) p[i]++;

        if(p[i]+i>maxright){

            maxright=p[i]+i;

            center=i;

        }

    }

}

 

标签:cnt,center,int,算法,maxn,拉车
From: https://www.cnblogs.com/mingzhaomz/p/17976683

相关文章

  • 算法-数组
    1.二分查找(LeetCode704)题目:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4......
  • 贪心算法练习
    问题描述:设有n个正整数,将他们连接成一排,组成一个最大的多位整数。例如:n=4时,4个整数21,8,901,6连成的最大整数为:9018621。贪心选择策略:(1)将所有数字转化为字符串形式。(2)将所有字符串按照长度从大到小排序。如果长度相同,则按照字典序从大到小排序。(3)将排序后的字符......
  • 算法模板 v1.3.1.20240120
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • PacBio长read纠错算法的研究
    PacBio长read纠错算法的研究随着第三代测序技术的快速发展,长read测序技术的出现使得我们可以更好地理解基因组的结构和功能。PacBio是一种常用的长read测序技术,但是由于其测序错误率较高,需要进行纠错以提高准确性。本文将介绍PacBio长read纠错算法的研究进展。PacBio长read纠错......
  • 2024/1/19 算法笔记
    题目1:最大公约数的延伸问题P1414又是毕业季II-洛谷|计算机科学教育新生态(luogu.com.cn)题目上提及了最大公约数,但是解答却没有直接使用最大公约数doge题目意思是给定n个数,再给定一个k,往这n个数中取k个,求这k个数的最大公约数是多少?然后题目的要求是k的取值为1到n全部取......
  • 吴师兄学算法day08 贪心 605. 种花问题
    题目:605.种花问题易错点:没想出来,借鉴了灵山的代码的思路,强行种花。我喜欢这个思路。感觉有点像设置哨兵那样的。 我的代码:classSolution:defcanPlaceFlowers(self,flowerbed:List[int],n:int)->bool:#修改数组,每次都种花,#凑够3个0......
  • 吴师兄学算法day08 贪心 860. 柠檬水找零
    题目:860.柠檬水找零易错点:我写的是ifesle哈哈,第一次还写错了。i==20的时候,5元只找了1张。哈哈哈.应该找3张 我的代码:classSolution:deflemonadeChange(self,bills:List[int])->bool:dic={5:0,10:0,20:0}foriinbills:......
  • MD4(SHA-1,SM3)算法的实现
     一、实验目的深度理解MD4(SHA-1,SM3)算法的工作原理,理解单向散列函数的应用,体会区块链挖矿的难度系数、加深对单向散列函数性质的理解。二、实验器材pycharm+python3.11三、实验内容1.实验要求:自己配置python环境,编写MD4(SHA-1,SM3)算法实现程序,运行MD4(SHA-1,SM3)程序,演......
  • 吴师兄学算法day08 贪心 134. 加油站
    题目:134.加油站理解难点:理解比较难,就是遍历1遍,尽可能找局部满足要求的。如果总油耗满足要求。那局部油耗找的出发点就是对的。遍历的时候,因为答案唯一,要么就满足要求,要么不满足要求。而<0证明之前的都不满足要求,满足要求的一定在后面。这题还是个环,环这里有点没太理解。环......
  • 二次剩余和 Cipolla 算法
    首先是素数模同余方程的相关理论。下设$p\in$是质数,\(f(x)=\sum_{i=0}^na_ix^i\),\(x\in\Z_p,p\not\mida_n\)。引理1如果\(f(x)\equiv0\pmodp\)具有解\(x_1\simx_k\),且\(k\len\)。则\[f(x)\equivg(x)\prod(x-x_i)\pmodp\]其中\(\degg=n-k,[x^{n-k}]g(x)=a......