哈希
蓝鲸
这个作者很懒,什么都没留下…
展开
-
《算法竞赛进阶指南》矩阵
矩阵给定一个M行N列的01矩阵(只包含数字0或1的矩阵),再执行Q次询问,每次询问给出一个A行B列的01矩阵,求该矩阵是否在原矩阵中出现过。输入格式第一行四个整数M,N,A,B。接下来一个M行N列的01矩阵,数字之间没有空格。接下来一个整数Q。接下来Q个A行B列的01矩阵,数字之间没有空格。输出格式对于每个询问,输出1表示出现过,0表示没有出现过。数据范围A≤100,M,N,B≤1000,Q≤1000输入样例:3 3 2 211100011131100111100原创 2020-09-10 20:18:55 · 399 阅读 · 0 评论 -
《算法竞赛进阶指南》 后缀数组
后缀数组后缀数组 (SA) 是一种重要的数据结构,通常使用倍增或者DC3算法实现,这超出了我们的讨论范围。在本题中,我们希望使用快排、Hash与二分实现一个简单的O(nlog2n)的后缀数组求法。详细地说,给定一个长度为 n 的字符串S(下标 0~n-1),我们可以用整数 k(0≤k<n) 表示字符串S的后缀 S(k~n-1)。把字符串S的所有后缀按照字典序排列,排名为 i 的后缀记为 SA[i]。额外地,我们考虑排名为 i 的后缀与排名为 i-1 的后缀,把二者的最长公共前缀的长度记为 .原创 2020-07-27 00:26:42 · 239 阅读 · 0 评论 -
《算法竞赛进阶指南》 回文子串的最大长度
回文子串的最大长度如果一个字符串正着读和倒着读是一样的,则称它是回文的。给定一个长度为N的字符串S,求他的最长回文子串的长度是多少。输入格式输入将包含最多30个测试用例,每个测试用例占一行,以最多1000000个小写字符的形式给出。输入以一个以字符串“END”(不包括引号)开头的行表示输入终止。输出格式对于输入中的每个测试用例,输出测试用例编号和最大回文子串的长度(参考样例格式)。每个输出占一行。输入样例:abcbabcbabcbaabacacbaaaabEND输出样例:Cas.原创 2020-07-25 00:38:51 · 252 阅读 · 0 评论 -
《算法竞赛进阶指南》兔子与兔子
兔子与兔子很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入格式第一行输入一个 DNA 字符串 S。第二行一个数字 m,表示 m 次询问。接下来 m 行,每行四个数字 l1,r1,l2,r2原创 2020-07-23 00:08:04 · 402 阅读 · 0 评论 -
《算法竞赛进阶指南》 雪花雪花雪花
雪花雪花雪花有N片雪花,每片雪花由六个角组成,每个角都有长度。第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,…,ai,6。因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花。例如ai,1,ai,2,…,ai,6和ai,2,ai,3,…,ai,6,ai,1就是形状相同的雪花。ai,1,ai,2,…,ai,6和ai,6,ai,5,…,ai,1也是形状相同的雪花。我们称两片雪花形状相同,当且仅当它们各自从某一角开始顺时针或原创 2020-07-18 23:16:07 · 446 阅读 · 0 评论