该文被密码保护。 Read More
posted @ 2018-10-15 19:13 lleozhang Views(27) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-15 18:34 lleozhang Views(11) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-15 16:54 lleozhang Views(14) Comments(0) Diggs(0) Edit
什么鬼noip互测题... 这题很显然是树形dp,但设计状态以及转移是个难点 记状态f[i][j][k]表示以i为根节点的子树,离i最近的祖宗节点编号为j放了虫洞(伐木场?),i的子树内放了k个伐木场的方案数 设to为i的某个子节点,当i不放伐木场时,有: dp[i][j][k]=min(dp[to Read More
posted @ 2018-10-08 19:50 lleozhang Views(71) Comments(0) Diggs(0) Edit
然后考虑正解 我们发现,最坏情况就是每个点都派驻军队,所以答案至多是“.”的数目 而且,每个点都至多只有一个入度和一个出度,所以我们可以将每个点拆成两个点,一个作为入点,一个作为出点,然后所有图上能到达的点由出点向入点建图 这样整个图就形成了一个二分图 然后在整个图上跑二分图匹配即可 答案即为“.” Read More
posted @ 2018-10-08 19:49 lleozhang Views(76) Comments(0) Diggs(0) Edit
做这题之前先看道高考真题(好像是真题,我记不清了) 例:已知一个由n个0和n个1排列而成的数列,要求对于任意k∈N*且k∈[1,2n],在前k个数中1的个数不少于0的个数,求当n=4时这样的数列的数量。 解:14个(策略:暴力枚举,时间复杂度O(2^n)) 所以本题其实就是对高考真题的一个一般化推广 Read More
posted @ 2018-10-08 19:49 lleozhang Views(101) Comments(0) Diggs(0) Edit
我说这是我们的noip互测题你信吗... 首先介绍一下仙人掌(略,参见题面) 然后我们思考一下怎么做: 首先,如果原图是一棵树,那么做法是很显然的(树上最长链嘛) 但是,图是一个仙人掌,所以树上最长链的做法有bug 所以我们考虑:是否能将树上的做法移接到仙人掌上即可 怎么移接? 我们看到,根据仙人掌 Read More
posted @ 2018-10-08 19:48 lleozhang Views(136) Comments(0) Diggs(0) Edit
莫名互测题... 这题一看就是期望dp,可是不会转移,所以考试写50分暴力走人... 正解:期望dp+记忆华搜索 设状态f[i][j]代表聪聪在i点,可可在j点时聪聪追上可可的期望 然后用dfs更新即可,注意先预处理出最短路和tpos[i][j]表示聪聪在i点,可可在j点时聪聪走一步时会走到的位置 Read More
posted @ 2018-10-05 08:38 lleozhang Views(74) Comments(0) Diggs(0) Edit
该文被密码保护。 Read More
posted @ 2018-10-04 09:25 lleozhang Views(1) Comments(0) Diggs(0) Edit
定理:对于给定的正整数a,b,方程有解的充要条件为c是gcd(a,b)的整数倍 证明: 充分性证明: 设gcd(a,b)=d,于是设,其中k1,k2互质 那么原等式等价于,即,其中k1,k2互质 那么这个方程等价于模线性方程,由拓展gcd知,该方程一定有解 那么该方程的一组解即为原方程的解 必要性证 Read More
posted @ 2018-10-04 08:32 lleozhang Views(2449) Comments(0) Diggs(0) Edit
其实我并没有见过原题,只是因为...这被改编成了互测题... 题目中提到了一个序列,这个序列是很重要的,否则这个问题好像是没有合理的时间复杂度解法的 但正因为有了这个序列,这个问题的时间复杂度才让人能够接受 序列的特性:逆序对! 根据题意,我们发现一个图上所有的连边一定来源于这个序列里的逆序对! 那 Read More
posted @ 2018-10-02 10:58 lleozhang Views(100) Comments(0) Diggs(0) Edit
互测题T3... 首先有个dp是非常好想的: 设dp[i][j]为前j个数分成i组的最大得分,则易得:dp[i][j]=max{dp[i-1][k-1]+num[k][j]},其中,num[k][j]表示从第k个数到第j个数不同值的数量 而num数组可以预处理出来,时间复杂度O(n^2 k) 等等, Read More
posted @ 2018-10-02 09:30 lleozhang Views(440) Comments(0) Diggs(0) Edit
这是拓展crt的典型应用 在你开始做之前,我一定要告诉你一件事情:虽然这道题看着和拓展crt模板很像,但他俩是有巨大的区别的!不要直接把板子改吧改吧扔上去! 题目模型:求解模线性方程组 其中p1,p2...pn不一定互质 第一眼:拓展crt板子题! 第二眼:等等...好像不太对 第三眼:WTF!系数 Read More
posted @ 2018-10-01 08:32 lleozhang Views(155) Comments(0) Diggs(0) Edit
一般来讲,crt(中国剩余定理)比较常见,而ex_crt(拓展中国剩余定理)不是很常用 但是noi 2018偏偏考了这么个诡异的东西... 所以这里写一个ex_crt模板 模型: 求一个x满足上述方程,其中a1,a2...an不一定互质 解法: 设存在一特解x0满足前k个方程组,且LCM(a1,a2 Read More
posted @ 2018-09-30 16:55 lleozhang Views(422) Comments(0) Diggs(0) Edit
神题... 其实这题巨水,用各种诡异的方法都能A,包括STL等等 我之所以写题解,是因为我发现了一个bug:bz和luogu时限有问题! 这题我用了两种做法: ①:直接使用STL-map(不能直接用数组,值太大了)记录一个数是否出现过即可,时间复杂度O(nlog2n有常数) bzoj AC,luog Read More
posted @ 2018-09-29 16:19 lleozhang Views(80) Comments(0) Diggs(0) Edit
题意:给出两个字符串,求这两个子串中最长相同子串长度 策略: 首先,我们可以将这两个字符串首尾相接,这样我们就可以获得一个长字符串,然后我们对这个新串求出height数组,然后枚举所有height并且找出两个sa,查出这两个sa是否在两个串内,这样就可以了如果是的话就用height更新ans即可 还 Read More
posted @ 2018-09-29 15:57 lleozhang Views(83) Comments(0) Diggs(0) Edit
这题其实有点骗人... 通过观察很容易发现:考虑某一些叶节点的LCA,由于根节点到这个LCA的距离唯一,故要求这些叶节点到这一LCA的距离都相等 于是我们仅需dfs,找到次底层的节点,然后使这些节点的子节点到这些节点的距离都相等即可 再向上回溯,算法完全相同,仅需把下面的距离累计到该节点向上的边即可 Read More
posted @ 2018-09-28 20:40 lleozhang Views(108) Comments(0) Diggs(0) Edit
数论大集合 只要你做完了这道题,除了线性筛和降幂公式以外,所有数论noip知识点就都会了... 题意:求C(n,∑w)*C(∑w,w1)*C(∑w-w1,w2).....mod p(不保证p为质数) 思想:拓展卢卡斯定理 算法:我们可以分别求每个C(n,m),然后乘起来mod p即可 在求每个C(n Read More
posted @ 2018-09-28 16:46 lleozhang Views(193) Comments(0) Diggs(0) Edit
自认为是少有的复杂的代码 这题思想很简单,就是大模拟 对于for循环,一行读入4个字符串,然后分类讨论: ①:如果是一个正常的O(n),那么累计n的指数加1 ②:如果是一个常数级别的,那么继续循环,但是不累计指数 ③:如果这个循环是从n到常数,或大常数到小常数,那么这个循环及它内部的循环都不进,打好 Read More
posted @ 2018-09-28 16:08 lleozhang Views(170) Comments(0) Diggs(0) Edit
vjudge原地爆炸... 题意:求一个字符串不同的子串的个数 策略:后缀数组 利用后缀数组的sa和height两个功能强大的数组,我们可以实现上述操作 首先有个很显然的结论:一个字符串的所有子串=它后缀的所有前缀 这是很显然的,因为一个后缀的前缀遍历了所有以该后缀起点为起点的字符串的子串,那么如果 Read More
posted @ 2018-09-26 19:04 lleozhang Views(101) Comments(0) Diggs(0) Edit
秒掉2/8的男人... 这题也是考察的后缀数组基础应用:可重叠至少重复k次的最长子串 显然还是对height数组应用于二分答案的检验 二分一个长度,然后用height数组检验即可 注意:不能单纯看height数组中出现某个值的次数,而是要关注height数组中连续出现某个值的次数,否则无法判断这个公 Read More
posted @ 2018-09-26 16:46 lleozhang Views(148) Comments(0) Diggs(0) Edit
激动ing...我完成了1/8的男人... 其实不难,但我交了3页WA,原因是我为防RE特判n=1直接输出,并没有读入!!! 题意:给定一个长为n的序列,定义该序列的两个子序列(连续)相似,当且仅当这两个子序列长度相同且互不重叠,而且这两个子序列每个序列内部相邻元素前后做差,将所有差值排列成一个序列 Read More
posted @ 2018-09-26 16:21 lleozhang Views(119) Comments(0) Diggs(0) Edit
费马小定理: 引理:若集合{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互 Read More
posted @ 2018-09-23 10:08 lleozhang Views(461) Comments(0) Diggs(0) Edit
后缀数组是一个很迷的字符串算法... 后缀数组的特点是:思想嘛...还行 代码嘛...很乱 首先做一些基础介绍: 后缀数组(sa)是一个数组(废话),他的作用是存储字典序排名为i的后缀的位置(即后缀的起点) 而后缀数组常常与rank数组同步计算,其中rank数组是起点为i的后缀的排名 既然如此,我们 Read More
posted @ 2018-09-21 16:07 lleozhang Views(141) Comments(0) Diggs(0) Edit
一道好题,利用kmp维护递推再更新矩阵乘法 这题首先可以递推: 设状态f[i][j]表示长串更新到了i位置,已经匹配短串匹配了j个数 那么我们有转移: f[i][get_nxt(j)]+=f[i-1][j-1] 当然,你并不懂这是什么意思 我们挨个解释一下 主题思想就是在前面放好的j-1个字符的基础 Read More
posted @ 2018-09-20 16:09 lleozhang Views(111) Comments(0) Diggs(0) Edit
AC自动机是一个多模字符串匹配的自动机(网上说的),主要作用是在一个长串中同时进行多个字符串的匹配 基础芝士: trie树(字典树) 烤馍片kmp单模字符串匹配 如果不会的建议去网上学一下(本篇讲解略过) 这里重点讲一讲AC自动机 (由于本蒟蒻不会指针,所以所有算法一律不使用指针,请神犇们谅解) 例 Read More
posted @ 2018-09-20 13:33 lleozhang Views(135) Comments(0) Diggs(0) Edit
manacher是很简单的字符串回文算法,作用是O(n)求出一个字符串的最长回文子串 下面给出这一算法的详解 首先,我们设原字符串是aaabba,很显然,这个字符串最长的回文子串长度为4 那么我们就要思考一种算法来计算出这个长度 于是manacher横空出世 首先,我们知道,一个回文子串一定有一个对 Read More
posted @ 2018-09-18 21:07 lleozhang Views(167) Comments(0) Diggs(0) Edit
基本题面: 设有n组数据a,b,对于每一组数据,都有选和不选两种状态(设状态为x,选则x=1,不选则x=0),现在欲求出所有选中的数据中,∑a/∑b的最大值。 接下来是一些数学问题: 设原式最大值为R,R=∑(ai·xi)/∑(bi·xi) 若设L为某一种不那么优的选法,则恒有R>=L 则: ∑(a Read More
posted @ 2018-09-18 18:51 lleozhang Views(194) Comments(0) Diggs(0) Edit
状压妙啊... 本题的主体思路:状压+容斥原理(或状压+数位dp) 记g[i]表示按位与后结果所有位上至少有i个1的方案数 那么根据容斥原理,ans=g[0]-g[1]+g[2]-g[3]+g[4]... 于是如果我们求出了g,就可以求出ans 可是怎么求出g呢 我们记f[i]表示a&i==i这样的 Read More
posted @ 2018-09-18 18:50 lleozhang Views(192) Comments(0) Diggs(0) Edit
一道玄学题... 其实一开始想的是对的,优化一下就好了 首先我们会发现,乘积不能被完全平方数整除等价于所有因子的每个质因子个数和都至多为1 可是500以内的质数很多,全找出来会爆炸的 可我们会发现,如果一个数的平方会在500以内,那么这个数一定<=22! 所以,1~500中会存在的完全平方数的质因子 Read More
posted @ 2018-09-18 18:49 lleozhang Views(111) Comments(0) Diggs(0) Edit
这应该暂时是个终结篇了... 最后在这里讨论LCT的一个常用操作:维护虚子树信息 这也是一个常用操作 下面我们看一下如何来维护 以下内容转自https://blog.csdn.net/neither_nor/article/details/52979425 对于一个点x,如果我们对x进行access Read More
posted @ 2018-09-18 18:47 lleozhang Views(140) Comments(0) Diggs(0) Edit
这一篇重点探讨LCT的应用 例:bzoj 2631 tree2(国家集训队) LCT模板操作之一,利用SPLAY可以进行区间操作这一性质对维护懒惰标记,注意标记下传顺序和如何下传 例:bzoj 3282 luogu 3690 link-cut-tree 模板 模板题,用SPLAY维护即可 注意判断加 Read More
posted @ 2018-09-18 18:20 lleozhang Views(170) Comments(0) Diggs(0) Edit
前三篇好像变成了SPLAY专题... 这一篇正式开始LCT! 其实LCT就是基于SPLAY的伸展操作维护树(森林)连通性的一个数据结构 核心操作有很多,我们以一道题为例: 例:bzoj 2049 洞穴勘测 要求:加边和删边,询问连通性 其实如果没有删边,裸跑并查集似乎就可以搞定 但由于存在删边,并查 Read More
posted @ 2018-09-18 18:05 lleozhang Views(167) Comments(0) Diggs(0) Edit
前两篇讲述了SPLAY模板操作,这一篇稍微介绍一下SPLAY的实际应用 (其实只有一道题,因为本蒟蒻就写了这一个) 例:bzoj 1014火星人prefix 由于本蒟蒻不会后缀数组,所以题目中给的提示完全没看懂 不过并不影响我们做这道题,因为正解好像不用后缀数组... 首先,如果这题没有插入和修改, Read More
posted @ 2018-09-17 20:35 lleozhang Views(155) Comments(0) Diggs(0) Edit
看到全是矩阵的题解,我来一发递推+分治 其实这题一半和poj1845很像(或是1875?一个叫Sumdiv的题) 言归正传,我们看看怎么由f(0)推出f(n) 我们发现,题目中给出了f(n)=af(n-1)+c(取模略过) 那么顺着递推,可得:f(n-1)=af(n-2)+c 代入,得: f(n)= Read More
posted @ 2018-09-17 20:25 lleozhang Views(160) Comments(0) Diggs(0) Edit
能够看到,上一篇的代码中有一段叫做find我没有提到,感觉起来也没有什么用,那么他的存在意义是什么呢? 接下来我们来填一下这个坑 回到我们的主题:NOI 2005维修数列 我们刚刚讨论了区间翻转的操作方法,接下来我们来考虑区间插入和区间删除的方法。 有了上一篇的铺垫,大家应该能看都,这两个操作方法是 Read More
posted @ 2018-09-15 16:45 lleozhang Views(155) Comments(0) Diggs(0) Edit
写了两周数据结构,感觉要死掉了,赶紧总结一下,要不都没学明白。 SPLAY专题: 例:NOI2005 维修数列 典型的SPLAY问题,而且综合了SPLAY常见的所有操作,特别适合新手入门学习(比如我这种蒟蒻) 题目要求很多,我们一步一步来分析 首先,区间翻转是SPLAY一个很基础的操作,我们以他为基 Read More
posted @ 2018-09-15 16:25 lleozhang Views(145) Comments(0) Diggs(0) Edit
treap裸题... 还是要写一下,毕竟是第一个成功用treap维护的题,做个纪念吧 这题的中心思想其实很简单,就是插入+删除+查询排名为x的数 但是重点是,全体的标记怎么处理? 首先有一个很显然的思想,就是在修改全体的时候,我们不去修改全体的值,而是去修改界限 但这样做有一个很显然的问题:界限修改 Read More
posted @ 2018-09-15 14:15 lleozhang Views(93) Comments(0) Diggs(0) Edit
这滞胀题调了两天了... 好愚蠢的错误啊... 其实这道题思维比较简单,就是利用treap进行维护(有人说线段树好写,表示treap真心很模板) 就是枚举所有长度为k的区间,查出中位数,计算代价即可。 (根据绝对值不等式的几何意义,中位数一定是最优解) 而维护长度为k的区间也很简单,就是首先把前k个 Read More
posted @ 2018-09-15 14:14 lleozhang Views(134) Comments(0) Diggs(0) Edit
莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) 接下来,我们仅需在图上讨论即可 当然,这个图有几个部分组成其实并没有那么重要,毕竟,这些部分基本是互 Read More
posted @ 2018-09-15 14:12 lleozhang Views(144) Comments(0) Diggs(0) Edit
levels of contents