字符串
字符串
_hunxuewangzi
这个作者很懒,什么都没留下…
展开
-
2019, XI Annual Programming Contest by ESCOM-IPN K. K-th Missing Digit题解(hash or 结论)
题目链接题目大意a*b=p,a,b有1e5位,p又2e5位,其中p有一位被遮住了,要你求p的那位是多少题目思路乘法的复杂度是O(n2)O(n^2)O(n2)所以我用python计算肯定超时了。。。有两种方法第一种就是枚举位数然后hash一下,这个很好理解。第二种方法就是根据一个结论。如果a*b=c那么sumdigit(a)*sumdigit(b)%9=sumdigit©%9,其中sumdigit(x)表示x的位数和,这个有点难理解,但是自己手动模拟一下乘法的操作应该就明白了,如果乘法中没有进位显原创 2020-08-10 20:28:58 · 200 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)K-Bag (hash / 差分维护起点 )
题目链接题目大意hash首先可以判断所有可行的起点和终点,然后你会发现所有全排列相加的和都满足(1+n)*n/2,但是如果这么去判断显然很容易冲突,如排列1 1 4,可以被判成1,2,3的全排列,所以就要运用hash,把 i 映射成 modi{mod}^imodi那么就不容易被卡了,复杂度看起来比nlogn要大一些,但是我个人感觉很难卡他的时间复杂度代码#include<set>#include<map>#include<queue>#include&l原创 2020-07-28 09:27:07 · 237 阅读 · 0 评论 -
Codeforces Beta Round #93 (Div. 1 Only) B. Password 题解(hash+kmp)
题目链接题目大意给出一个字符串,让你判断是否存在一个字符串的同时出现在字符串开头,中间(不能从第一个字母开始或者以最后一个字母结尾),和最后。若存在求其最长题目思路hash:看到第一眼觉得是Kmp,但自己基本不怎么知道kmp,想用hash水一下,先写了一下hash+二分,但后面发现其实他并不满足二分的条件。举个例子,假如说你判断前缀为4的时候,答案是不存在的,但这并不能说明前缀为5或者3的时候是不存在的。那么就直接暴力二分,居然过了o(n^2),应该数据有点水kmp:待补hash#includ原创 2020-05-21 16:46:35 · 314 阅读 · 0 评论 -
Hash Killer I 2 3 题解(hash+构造)
Hash Killer I 题目链接题目大意就是出一组数据卡掉hash ull的自然溢出题目链接首先明白两点:1.卡hash的关键在于构造两个不同的串对应的hash值相同。2.爆u64相当于对2^64这个数取模。如果base是偶数那么a…aaa(>64个a)与ba…aa(a的数量为前面那么串a的数量-1),这两个串长度相同,hash值相同,显然串是不同的,这样就卡掉了。如果...原创 2020-04-20 15:44:40 · 2813 阅读 · 1 评论 -
周赛 这真是一个水题吗 题解(hash)
题目链接题目大意给两个字符串 s1,s2,问s2在s1中出现了几次,最多可以有 k 个位置不匹配题目思路我才知道hash基本可以代替kmp可以先用 hash 预处理一下,然后枚举 s1 的每一个位置作为匹配的起点,然后考虑到它可以有 k 个位置不匹配,枚举s1的每一个位置,可以用二分找到第一个不匹配的位置,然后花费 1 跳过这一个位置继续二分找下一个不匹配的位置,总共可以跳过 k 次不...原创 2020-04-17 21:57:52 · 121 阅读 · 0 评论 -
牛客 每日一题 2 合并回文子串 题解(区间dp 最长回文字符串)
题目链接题目思路前言看到这个题目什么思路都没有,但是精讲是真的香。让我写了一些有关字符串的操作。也巩固了一波区间dp。还有子序列是分开的,字串是连续的。正文------------------------------------以下是和本题还有点关系的相关知识讲解-----------------------------首先,我们来复习一下区间dp的经典问题:最长回文子序列(如果你没...原创 2020-04-09 21:42:10 · 481 阅读 · 0 评论 -
牛客小白月赛18 B.Forsaken喜欢字符串 题解(哈希)
题目链接题目思路前言看到题目好多个累加号,一下就蒙了,其实仔细看一下还是可以明白题意得正题对于每个询问,本质上是求其他所有串的长度为len的子串是串x的子串的个数,然后总数乘上len就是答案,注意到k特别小,因此我们只需要存下每个串的所有哈希值,并且记录这个哈希值出现的次数,然后每次查询哈希值出 现的次数就行了。复杂度是O(nk^2 +qk)代码直接stl#include<i...原创 2020-04-02 19:31:58 · 280 阅读 · 0 评论 -
牛客小白月赛23 I 寻找子串题解(字符串操作)
题目链接题目大意字符串的子串是指字符串中连续的一段。给定字符串s,请你找出字典序最大的子串。题目思路本题不难,答案肯定时后缀,但是如果不用字符串函数等技巧可能有些难写,巩固学习一下字符串操作代码1用string的substr函数#include<iostream>#include<string>using namespace std;string s,a...原创 2020-03-31 17:52:58 · 402 阅读 · 0 评论