本文的图片材料多数来自$\mathrm{hihocoder}$中详尽的$SAM$介绍,文字总结为原创内容。 确定性有限状态自动机 DFA 首先我们要定义确定性有限状态自动机$\mathrm{DFA}$,一个有限状态自动机可以用一个五元组$(\mathrm{S},\Sigma,\mathrm{st}, ...
分类:
其他好文 时间:
2020-01-08 23:21:09
阅读次数:
152
Description 求一个字符串内重复次数最多的连续字串。 Solution "丢一个hihocoder的链接" 先考虑如何如何求一个串给定的串的最大重复次数,枚举一个可能的循环节长度 $l$,然后求原串和原串去掉前 $l$ 个字符后两个串的 $lcp$(最长公共前缀),如果能完全匹配上,就是一 ...
分类:
编程语言 时间:
2020-01-08 14:34:04
阅读次数:
82
问题描述 一个 $N \times N$ 围棋棋盘,任意两个白子不相邻,你要加入若干个黑子并提出白子,最大化空格数目。 "submit" 题解 显然最终棋盘的局面不能够一个白子和它周围的空格都是空的,只能属于 「空」 或 「不空」 。 所以是个二分图。 二分图最大独立集=总点数 二分图最大匹配 $\ ...
分类:
其他好文 时间:
2019-12-20 22:26:11
阅读次数:
140
带权并查集: 增加一个 value 值,并且每次合并和查找的时候需要去维护这个 value 例题一 :POJ 1182 食物链(经典) 题目链接:https://vjudge.net/contest/339425#problem/E 带权并查集的解法 定义两个数组fa[ ]和rela[ ],fa用来 ...
分类:
其他好文 时间:
2019-11-02 09:20:46
阅读次数:
173
逆序单词 HIhoCoder 1366 字典序 题意 在英文中有很多逆序的单词,比如dog和god,evil和live等等。 现在给出一份包含N个单词的单词表,其中每个单词只出现一次,请你找出其中有多少对逆序单词。 第1行:1个整数,N,表示单词数量。2≤N≤50,000。 第2..N+1行:每行1 ...
分类:
其他好文 时间:
2019-10-29 23:22:51
阅读次数:
143
题目:http://hihocoder.com/problemset/problem/1873 题解:采用分治的思想,将大问题逐步分解到小问题: 首先,我们可以把问题理解成,我当前站在pos 点,需要m 种方案到达终点,这样我们可以分类讨论: <1>m是偶数: 方案数=m/2 在pos+1 位置建立 ...
分类:
其他好文 时间:
2019-10-11 18:14:13
阅读次数:
92
Problem DescriptionIn the second year of the university somebody started a study on the romantic relations between the students. The relation "romanti ...
分类:
其他好文 时间:
2019-10-06 00:53:52
阅读次数:
103
题意:有n堆石头,盘古每次可以选择连续的x堆合并,所需时间为x堆石头的数量之和,x∈[l,r],现在要求,能否将石头合并成一堆,如果能,最短时间是多少。 思路:(参考了ACM算法日常)DP[i][j][k],表示当前状态下[i,j]这个区间分成了k堆。 状态转移:1.k=1时,dp[i][j][k] ...
分类:
其他好文 时间:
2019-10-04 14:53:45
阅读次数:
95
题目来源:http://hihocoder.com/problemset/problem/1174 描述 我们都知道大学的课程是可以自己选择的,每一个学期可以自由选择打算学习的课程。唯一限制我们选课是一些课程之间的顺序关系:有的难度很大的课程可能会有一些前置课程的要求。比如课程A是课程B的前置课程, ...
分类:
编程语言 时间:
2019-09-24 14:12:01
阅读次数:
83
"题目链接" Implementation c++ int n, q; scan(n,q); vi p(n + 1); vi nson(n + 1); up (i, 1, n) { scan(p[i]); nson[p[i]]++; } vi leaf; up (i, 1, n) { if (nso ...
分类:
其他好文 时间:
2019-09-23 22:35:47
阅读次数:
124