
字符串
ACkingdom
这个人很懒,什么都没有留下
展开
-
Educational Codeforces Round 94 (Rated for Div. 2) C. Binary String Reconstruction
题目链接思路:字符串s[i]如果为0,那么w[i]两端也一定为0,标记完这些位置之后特判两端长度为x的位置是否有冲突即可。代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const int M=1e4+5;const double eps=1e-8;const int m原创 2020-08-29 20:28:57 · 178 阅读 · 0 评论 -
Codeforces Round #661 (Div. 3) D. Binary String To Subsequences(思维,字符串)
题目链接题意:给你一个01字符串,你能将他分为至少多少个相邻数字不同的子字符串,输出个数和每一个位置的字符属于哪个子串。思路:每次记录都从一段连续的0或1开始,a数组记录子串编号,b数组记录编号子串结尾为0还是1,对于每一段连续的0或1,都从编号为1的子串开始遍历,根据b数组判断最后一位的数字看他能否成为该编号子串的最后一位,如果可以就将a[i]变为该编号并改变b数组中该编号子串的结尾数字。代码:#include<bits/stdc++.h>//#define int long l原创 2020-08-06 00:10:31 · 382 阅读 · 0 评论 -
Codeforces Round #659 (Div. 2) C. String Transformation 1(字符串,思维)
题目链接题意:给你两个长度相同的字符串a,b。你每次可以选择a中一些有相同字符的位置,把这些字符改成另一个大于他的字符。问至少要经过多少次修改,才能使a变成b。思路:我们只需要找a中与b不同的字母是否小于b中的字母并且记录是哪一个字母即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cou原创 2020-07-27 00:07:38 · 157 阅读 · 0 评论 -
Codeforces Round #659 (Div. 2) A. Common Prefixes(字符串,思维)
题目链接题意:给你一个长度为n的数组,让你构造出n+1个字符串,使得s[i]和s[i+1]之间的最长前缀和等于a[i]。思路:首先构造一个长度为60字母全为a的字符串,然后按照输入的a[i]遍历字符串,到达需要改变的位置时,如果该位置是a则变成b,后续有b的情况是b则变成a即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(f原创 2020-07-25 10:21:04 · 167 阅读 · 0 评论 -
Codeforces Round #658 (Div. 2) C1+C2(字符串,思维)
题目链接C1题目链接C2思路:先从头到尾将字符串a变为全为0的字符串,再从尾到头将这个全为0的字符串一点一点的变为全部符合字符串b的情况。代码:(C1+C2一样代码)#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+7;const doubl原创 2020-07-23 22:03:12 · 107 阅读 · 0 评论 -
【杭电多校2020】第一场1004.Distinct Sub-palindromes(思维)
题目链接思路:当n为1时字符串为任意字母,最少回文子串数为1;当n为2时字符串为任意两个字母,最少回文子串数为2;当n为3时字符串为任意三个字母,最少回文子串数为3;当n>=4时字符串为任意三个不相同字母的循环,最少回文子串数为3;代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cou原创 2020-07-22 22:08:28 · 137 阅读 · 0 评论 -
Codeforces Round #657 (Div. 2) B. Dubious Cyrpto(思维,数学)
题目链接题意:m=n⋅a+b−c(n为任意正整数),给出m的值a,b,c的范围l,r(l<=a,b,c<=r),求出a,b,c。思路:由推倒知0<=|b-c|<=r-l,然后枚举看能否有m%a或者a-m%a能够>=0或<=r-l即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false)原创 2020-07-20 20:26:56 · 1066 阅读 · 0 评论 -
Codeforces Round #656 (Div. 3) D. a-Good String(dfs,二分)
题目链接思路:dfs+二分遍历整个字符串,然后每次都跑整个区间来判断需要改变的字母的多少,取最小值。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const double eps=1e-8;const int mod=1e9+7;原创 2020-07-19 23:05:38 · 162 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)B Classical String Problem
题目链接思路:当输入M时,将开头位置加x,当输入A时,输出s[开头位置加x-1]。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e6+7;const int M=105;const int mod=1e9+7;const int inf=原创 2020-07-18 21:37:43 · 304 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)F Infinite String Comparision(字符串,思维)
题目链接题意:你有两个字符串,他们分别可以以自身为单位无限延长,请你比较两个字符串的字典序。思路:我们只需要将连个字符串乘二之后再比较字典序即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+7;const int mod=1e9+原创 2020-07-12 20:28:27 · 1649 阅读 · 0 评论 -
Codeforces Global Round 8-B. Codeforces Subsequences(字符串,思维)
题目链接题意:有一个只含codeforces的字符串,你可以改变其中任意字母的数量使得其中所包含的完整codeforces字串的数量(子串可以不连续)。思路:每次每一个字符加1,然后每个字符的数量想乘就是完整codeforces字串的数量。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cou原创 2020-07-08 20:53:36 · 223 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2)-B. AccurateLee(字符串,思维)
题目链接题意:给你一个01串,你可以删除所有的10子串其中的一个字符,求怎样能够使得字符串长度最短。思路:因为你可以删除所有的10中的一个字符,所以我们只需要寻找到第一个1和最后一个0的位置,然后删除掉中间的所有数字和开头末尾10中的一个即可。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);c原创 2020-06-24 21:44:01 · 906 阅读 · 0 评论 -
ZOJ - 3983 Crusaders Quest(字符串,思维)
题目链接题意:给你n串长度为9且只含分别三个‘g‘,‘a’,‘o’字符的字符串,你可以删掉任意个1,2,3个字符,如果删掉三个连续且相同的字符我们称为放大招,求最多能够放多少个大招。思路:首先遍历有无三个连续的字符,如果有就删掉然后在遍历,如果没有,就遍历六个连续的字符是否存在只含两种字符的情况,如果存在输出2,不存在输出1.代码:#include<bits/stdc++.h>using namespace std;//#define int long long#define原创 2020-06-19 20:28:35 · 219 阅读 · 0 评论 -
SCPC-Avada Kedavra(贪心,思维)
题目链接题意:Hermione Granger有一个01字符串,可是她不喜欢字符串出现一种情况,即s[i]+s[i+1]=s[i+2],所以她打算重新排列字符串(可以删除一部分),你们应该也知道她特别聪明,所以她不想亲手来解决这个问题,她想让你们来解决。思路:我们很容易能够推理到,连续的0是不允许的,连续的1是允许的,单独的0不能穿插在1之间,而单独的1可以穿插在0之间,所以我们考虑到的字符串是001循环字符串,再在字符串前面穿插上多个连续的1,我们比较sum1(1的个数)2+2和sum0(0的个数原创 2020-06-16 20:14:54 · 335 阅读 · 0 评论 -
SCPC-RGB(最大子段和)
题目链接题意:给你一个字符串。字符串由:‘R’ , ‘G’ , ‘B’ 组成。找一个区间,使得能获得的价值最大。价值计算公式:5 * r - 3 * g + b,r , g , b 分别为字符 R , G , B 的个数。思路:将输入的rgb字符串直接转化为他们的“价值”数组,然后直接求该数组的最大字段和。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::syn原创 2020-06-16 20:05:34 · 193 阅读 · 0 评论 -
Codeforces Round #642 (Div. 3)-E K-periodic Garland(字符串,贪心)
题目链接题意:给你一个长度为n的01串,每次操作可以将其中一个0变成1,求使得字符串中所有1的距离都是k的最小操作数。思路:双层循环,第一层跑k的余数,第二层跑该余数所在的间隔串里最多有多少连续的间隔为k的“1”,最后用字符串中所有的1的个数,减去最多且连续的间隔为k的“1”的个数得出结果。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_s原创 2020-05-20 20:42:48 · 332 阅读 · 0 评论 -
Educational Codeforces Round 87 (Rated for Div. 2)-B - Ternary String(字符串)
题目链接题意:给你一个只含123的字符串,找出长度最短的且含1,2,3的字符串(连续的).思路:用三个数字记录最近出现的1,2,3,用最大值减去最小值,就是含1,2,3的最短的字符串,然后和最短长度比较。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const in原创 2020-05-19 20:57:09 · 189 阅读 · 0 评论