摘要: A.每个状态只有一种后续转移,判断每次转移是否都合法即可。 B.按照题意枚举约数判断即可。 C.先用并查集并起来,然后瞎搞即可。 D.一道题意非常困难的题目orz。 题意大概就是:给你每天的金钱变化,你可以选择加任意数量的钱,但是需要保证每个时刻的钱数不超过d,而且当金钱变化为0时,此时钱的数量必须 阅读全文
posted @ 2017-11-24 16:40 Saurus 阅读(408) 评论(1) 推荐(0) 编辑
摘要: A.很水的题目,3个for循环就可以了 B.如果存在解,那么答案就是2^(x-1)(y-1),然后快速幂就可以了。 实际上就是判断(x-1)*(y-1)都填1有没有解,如果有的话,其实你变换任意一个矩阵内元素的值都有对应的唯一一种情况成立。 注意费马小定理和long long的溢出问题。 C.首先必 阅读全文
posted @ 2017-11-20 12:16 Saurus 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 把一个字符串s分割成m个串,这m个串满足至多有一种字符出现次数为奇数次,其他均为偶数次,问m的最小值 题解: 首先我们想一下纯暴力怎么做 显然是可以n^2暴力的,然后dp[i]表示分割到i的所用最少的串个数 接下来就是枚举所有可行的j,使得dp[j]转移到dp[i]。 虽然可以暴力找,但 阅读全文
posted @ 2017-10-24 16:57 Saurus 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 经典题 manacher是一种很神奇的算法, 算是动态规划的一种,不过利用的信息非常有效 阅读全文
posted @ 2017-10-22 18:08 Saurus 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一些开心串,每个串有一个开心值,构造一个串,每包含一次开心串就会获得一个开心值,求最大获得多少开心值。 题解: 首先先建立AC自动机。(建立fail指针的时候,对val要进行累加) 然后在AC自动机上跑dp dp[i][j] = max(dp[i][j], dp[i-1][k] + 阅读全文
posted @ 2017-10-21 21:28 Saurus 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个文本串,它的长度为m (1 <= m <= 2000000),现在想找出其中所有的符合特定模式的子串位置。符合特定模式是指,该子串的长度为n (1 <= n <= 500),并且第i个字符需要在给定的字符集合Si中。因此,描述这一特定模式,共需要S1,S2,...,Sn这n个字符集合。 阅读全文
posted @ 2017-10-10 21:52 Saurus 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 题意: 称一对字符串(A,B)是相似的,当且仅当满足以下条件: (1)字符串A和B都恰好包含N个字符; (2)A和B串中的每个字符都是小写字母的前k个字符,即A、B中只可能出现'a','b','c',...,('a'+k-1)这k个字符; (3)存在一个字符串C,满足:A+C=C+B。这里的“+”号 阅读全文
posted @ 2017-10-10 18:29 Saurus 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 题意: 班里有n个同学。老师为他们选了n个笔名。现在要把这些笔名分配给每一个同学,每一个同学分配到一个笔名,每一个笔名必须分配给某个同学。现在定义笔名和真名之间的相关度是他们之间的最长公共前缀。设笔名为a,真名为b,则他们之间的相关度为lcp(a,b)。那么我们就可以得到匹配的质量是每一个同学笔名和 阅读全文
posted @ 2017-10-08 20:51 Saurus 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个字符串T。字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度)。求所有T的子串S中,函数F(S)的最大值。 题解: 求T的后缀自动机,然后所有每个后缀自动机的结点u 求出endpos[u]*maxlen[u]中的最大值即可 阅读全文
posted @ 2017-10-08 16:28 Saurus 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如:abcd的所有前缀为a, ab, abc, abcd。 给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值。 题解: 我们前缀匹配的位置个数随长度是递减的(即长度越长,位置越少)。 用拓展kmp对自身求Next数组 我 阅读全文
posted @ 2017-10-08 16:21 Saurus 阅读(211) 评论(0) 推荐(0) 编辑