字符串
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【CF1671E】Preorder【计数】
赛时已经想到了子树*2的方法,但是没想到怎么去掉重复的东西,实际上已经很接近答案了。在子树本质相同的时候,通过交换是没法*2的,所以就记录字典序,比较最小字典序是否相同,这个可以用DFS实现。原创 2023-08-21 15:33:06 · 40 阅读 · 0 评论 -
【gmoj4889】【8.9提高B组模拟赛T1】最长公共回文子序列【字符串】【dfs暴力】
题目链接:最长公共回文子序列分析因为看到b串的长度很短,所以可以枚举出所有b中的回文序列,然后判断是否在a中出现,从中选择最长的。需要在a串中预处理pr[i][j]pr[i][j]pr[i][j]表示在第一个串第iii位后面第jjj个字母首次出现的位置。但是赛时直接输出最长公共子序列长度-1就有40pts就很离谱上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cst.原创 2021-08-09 20:37:51 · 69 阅读 · 0 评论 -
【ybtoj 高效进阶 2.2】B.回文子串【字符串哈希】
分析求最长回文子串不是manacher更牛¿回文串分两类:奇数长度和偶数长度。于是可以分类处理。奇回文串a[1]a[1]a[1]~a[(m+1)/2]=reverse(a[(m+1)/2+1]a[(m+1)/2]=reverse(a[(m+1)/2+1]a[(m+1)/2]=reverse(a[(m+1)/2+1] tototo m)m)m)偶回文串a[1,(m/2)]=reverse(a[(m/2)+1],m)a[1,(m/2)]=reverse(a[(m/2)+1],m)a[1,(...原创 2021-01-30 07:55:01 · 188 阅读 · 0 评论 -
【ybtoj 高效进阶 2.2】A.字符串哈希【哈希】
分析字符串哈希的模板题。重点就是要注意定位的那个地方,通过mod一个较大的质数来防止出错。上代码原创 2021-01-30 07:24:53 · 129 阅读 · 0 评论 -
【ybtoj 高效进阶 2.1】E.生日相同【字符串】
分析先按生日日期排序,第二关键字是名字长度。然后直接考虑生日日期不同的。如果一直是同月同日就一直输出名字,遇到不是同月同日的就换行输出日期再跟着输出名字。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct lwx//My struct is a dog{ string name; int month,day; bool operat..原创 2021-01-28 19:33:56 · 149 阅读 · 0 评论 -
【ybtoj 高效进阶 2.1】D.字符串环【字符串】
分析不用复制字符串,只需要mod字符串长度,直接做判断。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;string a,b;int mn,ans,mx;int main(){ cin>>a>>b; mn=min(a.length(),b.length()); for(int i=0;i<=a.length(.原创 2021-01-28 17:04:52 · 97 阅读 · 0 评论 -
【ybtoj 高效进阶 2.1】C.单词替换】【字符串】
分析因为整句读入不太好处理,所以考虑一个一个词输入,然后单独读入空格,每个词只要判断是不是要替换的词,然后替换/不替换之后直接原样输出。上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;string a[1001],s1,s2;char c;int main(){ int n=0; do { .原创 2021-01-28 16:45:35 · 155 阅读 · 0 评论 -
【ybtoj 高效进阶 2.1】B.移位包含【字符串】
分析复制一遍长的字符串,然后直接find()找,避免头尾的情况。上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;string s1,s2;int main(){ cin>>s1>>s2; if(s1.length()<s2.length()) swap(s1,s2).原创 2021-01-28 16:41:32 · 97 阅读 · 0 评论 -
【ybtoj 高效进阶 2.1】A.数字翻转【字符串】
分析直接翻转判断负号,去零就可以。上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;string a;int main(){ cin>>a; if(a[0]=='-') { cout<<'-'; } int ff=0; for(int i=a.length()-.原创 2021-01-28 16:38:15 · 184 阅读 · 0 评论 -
【2020.9.12SSL模拟赛T1】字符串【字符串】
题目描述小熊有一个由小写英文字母组成的字符串s = s1s2…sn。小熊想要计算s中有多少子串包含字符串“bear”,也就是找出满足字符串x(i, j)= sisi+1…sj 包含至少一个字符串“bear”的 (i, j)对数(1≤i≤j≤n)。字符串x(i, j)包含字符串“bear”定义为存在一个整数k(i≤k≤j-3),满足sk=b,sk+1=e,sk+2=a,sk+3=r。请帮助小熊解决这个问题。输入输入共1行,包含一个非空字符串s。数据保证字符串s中只包含小写英文字母。输出输原创 2020-10-26 20:47:29 · 149 阅读 · 0 评论 -
【洛谷P1347】排序【拓扑排序】
题目描述更好的阅读体验一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列A,B,C,D 表示A<B,B<C,C<D。在这道题中,我们将给你一系列形如A<B的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序。输入格式第一行有两个整数n,m,n表示需要排序的元素数量,2<=n<=26,第1到n个元素将用大写的A,B,C,D…表示。m表示将给出的形如A<B的关系的数量。接下来有m行,每行有3个字符,分别为一个大写字母,一原创 2020-08-17 21:07:56 · 326 阅读 · 0 评论 -
【ssl2343】家谱【并查集】【字符串】
Description现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先。Input输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 组成,用#name 的形式描写一组父子关系中的父亲的名字,用+name 的形式描写一组父子关 系中的儿子的名字;接下来用?name 的形式表示要求该人的最早的祖先;最后用单独的一个 $表示文件结束。规定每个人的名字都有且只有 6 个字符,而且首字母大写,且没有任意两 个人的名字相同。最多可原创 2020-07-21 11:25:47 · 183 阅读 · 1 评论