首页 > Abracadabra
头像 Dear㉿You
发表于 2020-09-03 11:58:44
前言 看到这道题,如果范围稍小一点,可以尝试将两串构造出来,然后连在一起,运用后缀排序求出hei数组进行求解,但很可惜的是,l和r太大了。 思考 我们先手造一下串1 a2 aba3 abacaba4 abacabadabacaba...会发现中点左右的串是一样的,比如[1,7 展开全文
头像 Meul
发表于 2020-09-03 23:08:08
C. Abracadabra 给定字符串a,进行以下操作:将字符串的结尾插入b(操作次数对应的字符),以b为对称中心构造回文串,得到aba。上述操作进行到第30次。a为第一次操作。b~z对应2~26,0~9对应27~36。给定,求最长公共子串的长度。 Solution 首先这是一个回文串,且由于操作 展开全文
头像 horz
发表于 2020-09-03 18:42:15
分析 我们可以利用递归求解。 我们枚举每个串中心,对于一个区间,如果它包含了串中心,我们就把它分解成两个串,另一个区间也这样做,然后就是最多种情况。 如果一个区间包含了另一个区间,直接返回小的那个区间的长度。 #include <bits/stdc++.h> using namespac 展开全文
头像 吃花椒的妙酱
发表于 2021-01-30 23:03:33
#include <bits/stdc++.h> using namespace std; typedef long long ll; int deal(int l1,int r1,int l2,int r2,int k)//区间长度2^k { if(l1>r1|| 展开全文
头像 熠丶
发表于 2020-09-02 19:46:16
题意:大概是给你一个字符串,他是又以下规则生成的首先第一步,整个字符串为a,然后有36个字符从a到z到0到9第二步,首先在前一步得到的字符串后面加一个字符,第二步就+b然后把前一步得到的字符串再复制一遍添到b后面比如,第一步是a, 第二步就变成了aba,依此变下去然后经过30步,会得到一个很长的字符 展开全文

等你来战

查看全部