09 2018 档案

摘要:一般来讲,crt(中国剩余定理)比较常见,而ex_crt(拓展中国剩余定理)不是很常用 但是noi 2018偏偏考了这么个诡异的东西... 所以这里写一个ex_crt模板 模型: 求一个x满足上述方程,其中a1,a2...an不一定互质 解法: 设存在一特解x0满足前k个方程组,且LCM(a1,a2 阅读全文
posted @ 2018-09-30 16:55 lleozhang 阅读(428) 评论(0) 推荐(0) 编辑
摘要:神题... 其实这题巨水,用各种诡异的方法都能A,包括STL等等 我之所以写题解,是因为我发现了一个bug:bz和luogu时限有问题! 这题我用了两种做法: ①:直接使用STL-map(不能直接用数组,值太大了)记录一个数是否出现过即可,时间复杂度O(nlog2n有常数) bzoj AC,luog 阅读全文
posted @ 2018-09-29 16:19 lleozhang 阅读(85) 评论(0) 推荐(0) 编辑
摘要:题意:给出两个字符串,求这两个子串中最长相同子串长度 策略: 首先,我们可以将这两个字符串首尾相接,这样我们就可以获得一个长字符串,然后我们对这个新串求出height数组,然后枚举所有height并且找出两个sa,查出这两个sa是否在两个串内,这样就可以了如果是的话就用height更新ans即可 还 阅读全文
posted @ 2018-09-29 15:57 lleozhang 阅读(86) 评论(0) 推荐(0) 编辑
摘要:这题其实有点骗人... 通过观察很容易发现:考虑某一些叶节点的LCA,由于根节点到这个LCA的距离唯一,故要求这些叶节点到这一LCA的距离都相等 于是我们仅需dfs,找到次底层的节点,然后使这些节点的子节点到这些节点的距离都相等即可 再向上回溯,算法完全相同,仅需把下面的距离累计到该节点向上的边即可 阅读全文
posted @ 2018-09-28 20:40 lleozhang 阅读(111) 评论(0) 推荐(0) 编辑
摘要:数论大集合 只要你做完了这道题,除了线性筛和降幂公式以外,所有数论noip知识点就都会了... 题意:求C(n,∑w)*C(∑w,w1)*C(∑w-w1,w2).....mod p(不保证p为质数) 思想:拓展卢卡斯定理 算法:我们可以分别求每个C(n,m),然后乘起来mod p即可 在求每个C(n 阅读全文
posted @ 2018-09-28 16:46 lleozhang 阅读(198) 评论(0) 推荐(0) 编辑
摘要:自认为是少有的复杂的代码 这题思想很简单,就是大模拟 对于for循环,一行读入4个字符串,然后分类讨论: ①:如果是一个正常的O(n),那么累计n的指数加1 ②:如果是一个常数级别的,那么继续循环,但是不累计指数 ③:如果这个循环是从n到常数,或大常数到小常数,那么这个循环及它内部的循环都不进,打好 阅读全文
posted @ 2018-09-28 16:08 lleozhang 阅读(181) 评论(0) 推荐(0) 编辑
摘要:vjudge原地爆炸... 题意:求一个字符串不同的子串的个数 策略:后缀数组 利用后缀数组的sa和height两个功能强大的数组,我们可以实现上述操作 首先有个很显然的结论:一个字符串的所有子串=它后缀的所有前缀 这是很显然的,因为一个后缀的前缀遍历了所有以该后缀起点为起点的字符串的子串,那么如果 阅读全文
posted @ 2018-09-26 19:04 lleozhang 阅读(103) 评论(0) 推荐(0) 编辑
摘要:秒掉2/8的男人... 这题也是考察的后缀数组基础应用:可重叠至少重复k次的最长子串 显然还是对height数组应用于二分答案的检验 二分一个长度,然后用height数组检验即可 注意:不能单纯看height数组中出现某个值的次数,而是要关注height数组中连续出现某个值的次数,否则无法判断这个公 阅读全文
posted @ 2018-09-26 16:46 lleozhang 阅读(151) 评论(0) 推荐(0) 编辑
摘要:激动ing...我完成了1/8的男人... 其实不难,但我交了3页WA,原因是我为防RE特判n=1直接输出,并没有读入!!! 题意:给定一个长为n的序列,定义该序列的两个子序列(连续)相似,当且仅当这两个子序列长度相同且互不重叠,而且这两个子序列每个序列内部相邻元素前后做差,将所有差值排列成一个序列 阅读全文
posted @ 2018-09-26 16:21 lleozhang 阅读(123) 评论(0) 推荐(0) 编辑
摘要:费马小定理: 引理:若集合{f}={f1,f2,f3...fm-1}中元素对m取模的结果遍历了(1~m-1)所有值,且k与m互质,则{f1k,f2k,f3k...}对m取模的结果同样遍历(1~m-1)所有值 (或者用偏理论的语言描述:如果{a1,a2,a3...am}是m的一个完全剩余系,且k与m互 阅读全文
posted @ 2018-09-23 10:08 lleozhang 阅读(475) 评论(0) 推荐(0) 编辑
摘要:后缀数组是一个很迷的字符串算法... 后缀数组的特点是:思想嘛...还行 代码嘛...很乱 首先做一些基础介绍: 后缀数组(sa)是一个数组(废话),他的作用是存储字典序排名为i的后缀的位置(即后缀的起点) 而后缀数组常常与rank数组同步计算,其中rank数组是起点为i的后缀的排名 既然如此,我们 阅读全文
posted @ 2018-09-21 16:07 lleozhang 阅读(142) 评论(0) 推荐(0) 编辑
摘要:一道好题,利用kmp维护递推再更新矩阵乘法 这题首先可以递推: 设状态f[i][j]表示长串更新到了i位置,已经匹配短串匹配了j个数 那么我们有转移: f[i][get_nxt(j)]+=f[i-1][j-1] 当然,你并不懂这是什么意思 我们挨个解释一下 主题思想就是在前面放好的j-1个字符的基础 阅读全文
posted @ 2018-09-20 16:09 lleozhang 阅读(115) 评论(0) 推荐(0) 编辑
摘要:AC自动机是一个多模字符串匹配的自动机(网上说的),主要作用是在一个长串中同时进行多个字符串的匹配 基础芝士: trie树(字典树) 烤馍片kmp单模字符串匹配 如果不会的建议去网上学一下(本篇讲解略过) 这里重点讲一讲AC自动机 (由于本蒟蒻不会指针,所以所有算法一律不使用指针,请神犇们谅解) 例 阅读全文
posted @ 2018-09-20 13:33 lleozhang 阅读(150) 评论(0) 推荐(0) 编辑
摘要:manacher是很简单的字符串回文算法,作用是O(n)求出一个字符串的最长回文子串 下面给出这一算法的详解 首先,我们设原字符串是aaabba,很显然,这个字符串最长的回文子串长度为4 那么我们就要思考一种算法来计算出这个长度 于是manacher横空出世 首先,我们知道,一个回文子串一定有一个对 阅读全文
posted @ 2018-09-18 21:07 lleozhang 阅读(168) 评论(0) 推荐(0) 编辑
摘要:基本题面: 设有n组数据a,b,对于每一组数据,都有选和不选两种状态(设状态为x,选则x=1,不选则x=0),现在欲求出所有选中的数据中,∑a/∑b的最大值。 接下来是一些数学问题: 设原式最大值为R,R=∑(ai·xi)/∑(bi·xi) 若设L为某一种不那么优的选法,则恒有R>=L 则: ∑(a 阅读全文
posted @ 2018-09-18 18:51 lleozhang 阅读(203) 评论(0) 推荐(0) 编辑
摘要:状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]... 于是如果我们求出了g,就可以求出ans 可是怎么求出g呢 我们记f[i]表示a&i==i这样的 阅读全文
posted @ 2018-09-18 18:50 lleozhang 阅读(197) 评论(0) 推荐(0) 编辑
摘要:一道玄学题... 其实一开始想的是对的,优化一下就好了 首先我们会发现,乘积不能被完全平方数整除等价于所有因子的每个质因子个数和都至多为1 可是500以内的质数很多,全找出来会爆炸的 可我们会发现,如果一个数的平方会在500以内,那么这个数一定<=22! 所以,1~500中会存在的完全平方数的质因子 阅读全文
posted @ 2018-09-18 18:49 lleozhang 阅读(122) 评论(0) 推荐(0) 编辑
摘要:这应该暂时是个终结篇了... 最后在这里讨论LCT的一个常用操作:维护虚子树信息 这也是一个常用操作 下面我们看一下如何来维护 以下内容转自https://blog.csdn.net/neither_nor/article/details/52979425 对于一个点x,如果我们对x进行access 阅读全文
posted @ 2018-09-18 18:47 lleozhang 阅读(144) 评论(0) 推荐(0) 编辑
摘要:这一篇重点探讨LCT的应用 例:bzoj 2631 tree2(国家集训队) LCT模板操作之一,利用SPLAY可以进行区间操作这一性质对维护懒惰标记,注意标记下传顺序和如何下传 例:bzoj 3282 luogu 3690 link-cut-tree 模板 模板题,用SPLAY维护即可 注意判断加 阅读全文
posted @ 2018-09-18 18:20 lleozhang 阅读(193) 评论(0) 推荐(0) 编辑
摘要:前三篇好像变成了SPLAY专题... 这一篇正式开始LCT! 其实LCT就是基于SPLAY的伸展操作维护树(森林)连通性的一个数据结构 核心操作有很多,我们以一道题为例: 例:bzoj 2049 洞穴勘测 要求:加边和删边,询问连通性 其实如果没有删边,裸跑并查集似乎就可以搞定 但由于存在删边,并查 阅读全文
posted @ 2018-09-18 18:05 lleozhang 阅读(171) 评论(0) 推荐(0) 编辑
摘要:前两篇讲述了SPLAY模板操作,这一篇稍微介绍一下SPLAY的实际应用 (其实只有一道题,因为本蒟蒻就写了这一个) 例:bzoj 1014火星人prefix 由于本蒟蒻不会后缀数组,所以题目中给的提示完全没看懂 不过并不影响我们做这道题,因为正解好像不用后缀数组... 首先,如果这题没有插入和修改, 阅读全文
posted @ 2018-09-17 20:35 lleozhang 阅读(156) 评论(0) 推荐(0) 编辑
摘要:看到全是矩阵的题解,我来一发递推+分治 其实这题一半和poj1845很像(或是1875?一个叫Sumdiv的题) 言归正传,我们看看怎么由f(0)推出f(n) 我们发现,题目中给出了f(n)=af(n-1)+c(取模略过) 那么顺着递推,可得:f(n-1)=af(n-2)+c 代入,得: f(n)= 阅读全文
posted @ 2018-09-17 20:25 lleozhang 阅读(164) 评论(0) 推荐(0) 编辑
摘要:能够看到,上一篇的代码中有一段叫做find我没有提到,感觉起来也没有什么用,那么他的存在意义是什么呢? 接下来我们来填一下这个坑 回到我们的主题:NOI 2005维修数列 我们刚刚讨论了区间翻转的操作方法,接下来我们来考虑区间插入和区间删除的方法。 有了上一篇的铺垫,大家应该能看都,这两个操作方法是 阅读全文
posted @ 2018-09-15 16:45 lleozhang 阅读(160) 评论(0) 推荐(0) 编辑
摘要:写了两周数据结构,感觉要死掉了,赶紧总结一下,要不都没学明白。 SPLAY专题: 例:NOI2005 维修数列 典型的SPLAY问题,而且综合了SPLAY常见的所有操作,特别适合新手入门学习(比如我这种蒟蒻) 题目要求很多,我们一步一步来分析 首先,区间翻转是SPLAY一个很基础的操作,我们以他为基 阅读全文
posted @ 2018-09-15 16:25 lleozhang 阅读(147) 评论(0) 推荐(0) 编辑
摘要:treap裸题... 还是要写一下,毕竟是第一个成功用treap维护的题,做个纪念吧 这题的中心思想其实很简单,就是插入+删除+查询排名为x的数 但是重点是,全体的标记怎么处理? 首先有一个很显然的思想,就是在修改全体的时候,我们不去修改全体的值,而是去修改界限 但这样做有一个很显然的问题:界限修改 阅读全文
posted @ 2018-09-15 14:15 lleozhang 阅读(100) 评论(0) 推荐(0) 编辑
摘要:这滞胀题调了两天了... 好愚蠢的错误啊... 其实这道题思维比较简单,就是利用treap进行维护(有人说线段树好写,表示treap真心很模板) 就是枚举所有长度为k的区间,查出中位数,计算代价即可。 (根据绝对值不等式的几何意义,中位数一定是最优解) 而维护长度为k的区间也很简单,就是首先把前k个 阅读全文
posted @ 2018-09-15 14:14 lleozhang 阅读(137) 评论(0) 推荐(0) 编辑
摘要:莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) 接下来,我们仅需在图上讨论即可 当然,这个图有几个部分组成其实并没有那么重要,毕竟,这些部分基本是互 阅读全文
posted @ 2018-09-15 14:12 lleozhang 阅读(152) 评论(0) 推荐(0) 编辑
摘要:数论知识点: 约数个数和约数和公式(例题:POJ1845 分治思想): 质因数分解 p1^k1xp2^k2xp3^k3...pn^kn 约数个数和:(1+k1)(1+k2)...(1+kn) 所有约数和=(1+p1+p1^2+...+p1^k1)...(1+pn+pn^2+...+pn^kn) 求和 阅读全文
posted @ 2018-09-10 18:50 lleozhang 阅读(211) 评论(0) 推荐(0) 编辑
摘要:好玄学的线段树啊... 调了半天的题,最后发现是传参的数据类型传错了(long long 传成了int),结果RE3小时... 说下思路吧... 其实主题思想很简单,就是把一个二进制数作为一个序列建立一棵线段树,然后各种维护即可 当然这样会TLE或MLE之类的 所以我们采用其他的策略:压位!!! 这 阅读全文
posted @ 2018-09-06 16:07 lleozhang 阅读(165) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-09-03 20:29 lleozhang 阅读(2) 评论(0) 推荐(0) 编辑

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