08 2019 档案

摘要:1.全局变量和局部变量重名 2.爆int爆long long 3.打错*6,scanf拼错 for(int i=0;i<=tot;i++) { ans+=dp[len][tot]; //是i啊我!@#¥%……&*() } 4.数组开小,结果会超时 5.超内存 int 4Byte,long long  阅读全文
posted @ 2019-08-29 20:53 myrtle 阅读(217) 评论(1) 推荐(2) 编辑
摘要:目的:已知n个长度不同的模式串,以及一个长度为m的串S,求在S中出现过多少个模式串。 步骤: ①建立trie树 ②建立失败指针 ③字符串匹配 fail[now]:当前节点now的失败指针指向的地方 trie[now][i]:下一个字母为i+'a'的节点的下标为trie[now][i] build过程 阅读全文
posted @ 2019-08-28 23:59 myrtle 阅读(177) 评论(0) 推荐(1) 编辑
摘要:目的:Range Minnum/Maxnum Query,区间最值查询 时间复杂度:预处理O(n*logn),查询O(1) 自用模板: dp[i][j]表示从第i位开始连续 个数中的最小值,rmq(l,r)表示[l,r]区间中的最值,dp开[maxn][30] void rmq_init() { f 阅读全文
posted @ 2019-08-27 14:10 myrtle 阅读(139) 评论(0) 推荐(0) 编辑
摘要:自用模板: sa:字典序中排第i位的起使位置在str中第sa[i],sa[1,n]rk:str第i个位置的后缀在字典序中排第几,rk[1,n]height:字典序排i和i-1的后缀的最长公共前缀,height[2,n] #include<bits/stdc++.h> #define maxn 100 阅读全文
posted @ 2019-08-26 16:37 myrtle 阅读(268) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://nanti.jisuanke.com/t/40852 题意:给定一个01串s,进行m次操作,|s|<=1e6,m<=5e5 操作有两种 l r 0,区间[l,r]升序排序 l r 1,区间[l,r]降序排序 输出m次操作后的串s 官方解析: 维护区间1的个数,区间0的个数= 阅读全文
posted @ 2019-08-12 10:50 myrtle 阅读(158) 评论(0) 推荐(1) 编辑
摘要:题目链接:https://nanti.jisuanke.com/t/40860 题意:给一个长度为n的数组a[],n<1e5,a[i]<1e5 三个操作: 1 x y:把所有值为x的数据改成a[y] 2 x:输出a[x]的值 3 x:值为x的树有多少个 官方解析: 设father[i]表示初值为i的 阅读全文
posted @ 2019-08-12 01:38 myrtle 阅读(159) 评论(0) 推荐(1) 编辑
摘要:目的:找出字符串S的所有后缀与字符串T的最长公共前缀,预处理Next[i]。 S字符串长度为n,T字符串长度为m。 Next[i],i∈[0,m),表示T的后缀i与T的最长公共前缀。 extend[i],i∈[0,n),表示T与S[i,n)的最长公共前缀。如果有一个extend[i]=m,则T在S中 阅读全文
posted @ 2019-08-09 23:17 myrtle 阅读(227) 评论(0) 推荐(1) 编辑
摘要:目的:在字符串T中查找字符串P的出现位置,预处理P字符串得到fail数组 时间复杂度:O(|P|+|T|) next[i]定义为字符s[i]前面最多有多少个连续的字符和字符串s从初始位置开始的字符匹配,i∈[1,n] 循环节问题: 字符串长度为n,若n%(n-Next[n])==0,必有循环节,且循 阅读全文
posted @ 2019-08-09 20:39 myrtle 阅读(356) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示