Fortnight07
Fortnight07
全部文章
分类
题解(6)
归档
标签
去牛客网
登录
/
注册
Fortnight07的博客
全部文章
(共5篇)
B 题题解
B 题 这里下标从 0 开始 考虑KMP找到模式串在文本串中的第一个位置。 假设在文本串中区间[i,j]能匹配。 根据乘法原理,那么每次有(i+1)*(n-j)。但是有重复的部分。 注意到每一次都把一类左端点的贡献都算了,所以记录一个变量ss表示当前已经计算过多少个左端点的贡献,在下一次计算时把可以...
2020-10-28
1
504
题解
显然有一种暴力的方法 把依次把每个置为0,到了最后一个,值是所有的和。 那么可以往前搞,平均分配和。所以如果和不能平均分成 份就是无解。 然后可以发现每个依次操作就是最优策略。 #include <iostream> #include <cstdio> #include &...
2020-10-27
1
518
题解
B 题可以像区间dp断环成链一样,把字符串倍长。 假设序列倍长后长度是 。 那么对于每个 ,找到区间 的最大连续 1 的长度。 这里可以直接找出倍长后最长的连续 1 的长度,然后对 取个min即可。 #include <iostream> #include <cstdio>...
2020-10-27
1
547
A 题解
没思路的话可以先打个表,就能发现:如果 为素数,如果 能表示为 ,且 最小且为素数,除以上情况,。 举个例子第二个情况。比如 ,那么此时 ,因为 是素数,且。 然后可以线筛出 内所有素数,是 个,那么对于每个素数枚举他的幂,如果枚举的幂还没有记录过答案,那么此时这个素数便是这个幂的f值。...
2020-10-23
0
781
题解
无解的情况有两种: 如果只有一个奇数数码,那么可以放在中间。多个不行。 只有两个数码的值>0,且其中一个数码是0。那么如果只能放0在两边(必须为有前导0)。 然后简单的做法就是把唯一一个数码为奇数个的位置找到,然后把他的数码-1,存下他的位置。然后现在直接把他按照偶数的搞就行。 贪心很简单...
2020-10-10
3
566