![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
字符串
hh
哆啦c梦~~
嵌入式开发小白
展开
-
AcWing 158. 项链(字符串最小表示法)
题目描述有一天,达达捡了一条价值连城的宝石项链,但是,一个严重的问题是,他并不知道项链的主人是谁!在得知此事后,很多人向达达发来了很多邮件,都说项链是自己的,要求他归还(显然其中最多只有一个人说了真话)。达达要求每个人都写了一段关于自己项链的描述: 项链上的宝石用数字0至9来标示。一个对于项链的表示就是从项链的某个宝石开始,顺指针绕一圈,沿途记下经过的宝石,比如项链: 0-1-2-3 ,它的可能的四种表示是0123、1230、2301、3012。达达现在心急如焚,于是他找到了你,希望你能够编写一原创 2020-10-28 19:03:56 · 142 阅读 · 0 评论 -
矩阵(二维字符串哈希)
题目描述给定一个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 2111000111311001111原创 2020-10-27 22:18:26 · 556 阅读 · 0 评论 -
KMP字符串匹配算法 + 周期
KMP字符串匹配图解代码实现for(int i = 1, j = 0; i <= n; i++){ while(j && s[i] != p[j+1]) j = ne[j]; //如果j有对应p串的元素, 且s[i] != p[j+1], 则失配, 移动p串 //用while是由于移动后可能仍然失配,所以要继续移动直到匹配或整个p串移到后面(j = 0) if(s[i] == p[j+1]) j++; //当前元素匹配,j移向p串下一位原创 2020-10-24 16:28:03 · 856 阅读 · 0 评论 -
AcWing 137. 雪花雪花雪花(字符串的最小表示法)
题目描述有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-10-24 12:12:11 · 233 阅读 · 0 评论 -
字符串哈希模板+例题
模板核心思想:将字符串看成P进制数,P的经验值是131或13331,取这两个值的冲突概率低小技巧:取模的数用2^64,这样直接用unsigned long long存储,溢出的结果就是取模的结果typedef unsigned long long ULL;ULL h[N], p[N]; // h[k]存储字符串前k个字母的哈希值, p[k]存储 P^k mod 2^64// 初始化p[0] = 1;for (int i = 1; i <= n; i ++ ){ h[i] =原创 2020-10-24 11:58:53 · 1040 阅读 · 0 评论