字符串
看见我请叫我去学习
此人很懒
展开
-
cf1202D(div2)
这题也好- 给定一个数n- 求一个串含有n个子序列{1337}, 并输出这个串- 串长小于1e5>> face << tutorial:问题可以简化成 n=cnt1∗Ccnt32∗n3n = cnt_1 * C_{cnt_3}^2* n_3n=cnt1∗Ccnt32∗n3,且cnt1+cnt3+cnt7≤105cnt_1 + cnt_3 + cnt_...原创 2019-11-01 19:23:51 · 145 阅读 · 0 评论 -
DP(区间进阶三)
题意: 给定一个字符串, 求其最短压缩长度折叠的定义如下:压缩后的字符串除了小写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上一个M(如果当前位置左边没有M,则从串的开始算起)开始的解压结果(称为缓冲串)。例如:bcdcdcdcd可以压缩为bMcdRR,下面是解压缩的过程:已解压的部分解压结果缓冲串bbbbmb....原创 2019-08-04 11:16:07 · 181 阅读 · 0 评论 -
DP(区间进阶四)
题意: 给定一串配对的括号字符串, 现要求对该字符串染色, 1.一个括号可以染红色、蓝色或不染色 2.一对匹配的括号需要且只能将其中一个染色 3.相邻两个括号颜色不能相同(但可以都不染色) 求符合条件的染色方案数(对1000000007取模)>> face <<Strategy:和普通的括号问题类似, 但是限制条件略有不同, 其中两相邻的括号不同色和一对括号只能染一次...原创 2019-08-05 19:56:31 · 221 阅读 · 0 评论 -
DP(区间进阶二)
题意: 给定一个字符串, 求其最短折叠长度折叠的定义如下:一个字符串可以看成它自身的折叠。记作S = SX(S)是X(X>1)个S连接在一起的串的折叠。记作X(S) = SSSS…S(X个S)。如果A = A’, B = B’,则AB = A’B’ 例如,因为3(A) = AAA, 2(B) = BB,所以3(A)C2(B) = AAACBB,而2(3(A)C)2(B) = AAA...原创 2019-08-01 22:31:47 · 112 阅读 · 0 评论 -
DP(数位进阶)
题意: 给定区间, 求该区间的回文数的个数>> face <<Strategy: 数位dp dfs数位+滚动数组判回文状态: dp[i][j][k]代表搜到第i位,起点为j(去前导零+回文判断),k=0:不是回文串反之亦然目标: sum[r]−sum[l−1](sum[i]代表1 i内的所有合法数的个数)sum[r]-sum[l-1](sum[i]代表1~...原创 2019-08-08 18:40:58 · 226 阅读 · 0 评论 -
DP(数位专题三)
题意: 好在在他眼里,并不是所有数都是萌的。只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数;110是萌的,因为包含回文子串11;但是102不是萌的,1201也不是萌的。现在SOL想知道从l到r的所有整数中有多少个萌数。由于答案可能很大,所以只需要输出答案对1000000007(10^9+7)的余数。>> face <&l...原创 2019-08-07 13:12:57 · 108 阅读 · 0 评论 -
kmp匹配模板
首先: >>大佬博客传送门<<优化后#include <bits/stdc++.h>#define _rep(i, a, b) for (int i = (a); i <= (b); ++i)#define _rev(i, a, b) for (int i = (a); i >= (b); --i)#define _for(i, a, b)...原创 2019-08-24 18:58:17 · 140 阅读 · 0 评论