11 2018 档案

摘要:首先在学习这个之前我们需要学会trie树这个东西,详见trie树。 AC自动机就是在trie树的基础上建立起来的。 先看几个定义: 1,fail指针:这个指针指向 等于当前串的某一后缀的串中,深度最大的那个串。因为在trie树上任意一个点都可以代表从root到这个点所构成的串,所以假设我们现在有ab 阅读全文
posted @ 2018-11-19 22:26 ww3113306 阅读(242) 评论(0) 推荐(0)
摘要:简而言之,trie树就是把字符当做点的树。 一般而言,我们建trie树都是在树上插入很多个字符串,再利用trie树的性质来做题。 对于任意一个字符串,我们的插入规则如下:(此处默认所有字符串都只有小写字母) 一开始我们在根节点0. 假设当前所在的点为x,当前遍历到的字符为c。 1,我们先检测x这个节 阅读全文
posted @ 2018-11-19 21:37 ww3113306 阅读(165) 评论(0) 推荐(0)
摘要:基数排序是一种复杂度为n * max(每个数的位数)的优秀算法,平常用的不多,但求后缀数组的时候为了达到nlogn的复杂度一般都会采用基数排序,因此还是很有必要学一下的。 大概的意思就是说,对于一个数列而言,我们先以个位数为权值桶排一遍得到一个新的排列,然后再在这个排列的基础上以十位数为权值桶排一遍 阅读全文
posted @ 2018-11-19 21:24 ww3113306 阅读(156) 评论(0) 推荐(0)
摘要:照惯例CF的题不放原题链接。。。 题意:一个序列上有n个点,每个点有权值pi和si。表示这个点一开始有pi个物品,最多可以卖出si个物品,每个点都可以把物品向编号更大的点运输,但是对于i < j的任意点对(i, j)最多从i到j运c个物品。求最多能卖出多少个物品。 题解: 如果不考虑数据范围的话,可 阅读全文
posted @ 2018-11-15 20:32 ww3113306 阅读(255) 评论(0) 推荐(0)
摘要:题面:[CQOI2009]跳舞 题解: 首先最大时间不好求,而且数据范围很小,所以我们可以先二分一个最大时间,然后就只需要判断是否可行即可。 因此我们每二分一个mid,对于每个女生,连s > x : mid , x > x' : k.对于每个男生,连x > t : mid, x' > x : k. 阅读全文
posted @ 2018-11-14 21:55 ww3113306 阅读(182) 评论(0) 推荐(0)
摘要:高二蒟蒻一名,NOIP被同届巨佬吊打DAY -1 考前复习了一下斜率优化,感觉有所收获,尝试了以前没用过的另一种方法推导 & 发现自己对叉积一无所知。写了有点久,但是感觉还行。 DAY 0 上午放假,在家里睡到了11点,醒来之后什么也没做,码了码代码就吃饭去学校了。 下午复习了一下数学相关,发现自己 阅读全文
posted @ 2018-11-13 14:16 ww3113306 阅读(524) 评论(0) 推荐(1)
摘要:很久之前一直觉得斜优很难理解,,,今天再看发现好像是挺好理解的。 不过如果x不单调就要用splay或者cdq维护了,,,,依旧很恶心。、 先讲最基础的斜优吧,不单调的以后再填坑。 先来看一道例题:CF311B Cats Transport 斜率优化DP 当我们得到DP方程$f[i][j] = f[i 阅读全文
posted @ 2018-11-09 17:55 ww3113306 阅读(239) 评论(0) 推荐(0)
摘要:题面:CF311B Cats Transport 题解: 首先我们观察到山与距离其实是没有什么用的,因为对于任意一只猫,我们都可以直接算出如果有一个人要恰好接走它,需要在哪一时刻出发,我们设第i只猫对应的这个时刻为$t_{i}$. 注意这个$t_{i}$是我自己新定义的,跟题目中的没有关系,下面所写 阅读全文
posted @ 2018-11-09 16:59 ww3113306 阅读(812) 评论(2) 推荐(3)
摘要:复习逆元…… 逆元 求法: 1,快速幂 根据费马小定理有$a^{p - 1} \equiv 1 \quad (mod \quad p)$,把左边拆开一下得到 \(a \cdot a^{p - 2} \equiv 1 \quad (mod \quad p)\) 因此$a^{p - 2}$为$a$在$m 阅读全文
posted @ 2018-11-08 16:36 ww3113306 阅读(159) 评论(0) 推荐(0)
摘要:[TOC] 计算公式: $$h_{n} = h_{0} \cdot h_{n 1} + h_{1} \cdot h_{h 2} + ... + h_{n 1} \cdot h_{0}$$ $$h_{n} = h_{n 1} \cdot (4n 2) / (n + 1)$$ $$h_{n} = \fr 阅读全文
posted @ 2018-11-08 16:09 ww3113306 阅读(274) 评论(0) 推荐(0)
摘要:题面:[HNOI2009]有趣的数列 题解: 观察到题目其实就是要求从长为2n的序列中选n个放在集合a,剩下的放在集合b,使得集合a和集合b中可以一一对应的使a中的元素小于b。 2种想法(实质上是一样的)。 1,相当于前1位中至少要选1个放入a,前3位中至少要选2位放入a,前5位中至少要选3位放入a 阅读全文
posted @ 2018-11-08 13:02 ww3113306 阅读(193) 评论(0) 推荐(0)
摘要:题面:[NOIP2012]疫情控制 题解: 大体思路很好想,但是有个细节很难想QAQ 首先要求最大时间最小,这种一般都是二分,于是我们二分一个时间,得到一个log。 然后发现一个军队,越往上走肯定可以控制的叶节点越多,因此我们在时间范围内尽量向上走,又得到一个log了。 如果一个军队走到根后还有多余 阅读全文
posted @ 2018-11-08 13:01 ww3113306 阅读(238) 评论(0) 推荐(0)
摘要:题意:一个n * m的矩阵,求从左上走到右下经过的数异或和为k的方案数。 题解: 因为数据范围较小,所以我们可以采用meet in the middle过掉此题、、、 然而define inf LL 才过。。。。 1 #include<bits/stdc++.h> 2 using namespace 阅读全文
posted @ 2018-11-07 21:02 ww3113306 阅读(163) 评论(0) 推荐(0)
摘要:题面:[SCOI2007]组队 题解: 一开始固定H然后找性质找了很久也没有找到任何有用的东西。。。。。。 然后大佬告诉我一个神奇的方法。。。 首先我们化一波式子: 设$H$表示高度的最小值,$V$表示速度的最小值 $$A(h[i] - H) - B(v[i] - V) \le C$$ $$Ah[i 阅读全文
posted @ 2018-11-07 19:26 ww3113306 阅读(172) 评论(0) 推荐(0)
摘要:题面:[NOIP2017]宝藏 题面: 首先我们观察到,如果直接DP,因为每次转移的代价受上一个状态到底选了哪些边的影响,因此无法直接转移。 所以我们考虑分层DP,即每次强制现在加入的点的距离为k(可能实际上小于k),这样就可以忽略掉上个状态选了哪些边的影响了。 所以这样为什么是正确的呢? 设f[i 阅读全文
posted @ 2018-11-07 00:02 ww3113306 阅读(239) 评论(0) 推荐(0)
摘要:题面: [NOI2017]蔬菜 题解: 首先每天蔬菜会变质这点并不好处理,我们考虑让时间倒流,从后向前处理,这样的话就相当于每天都会得到一定量的蔬菜。 这样做有什么好处呢? 我们可以发现一个性质:如果从后向前贪心卖菜,那么因为现在可以卖的菜,以后一定还可以卖(因为变成了得到菜),因此贪心就是对的了。 阅读全文
posted @ 2018-11-06 20:06 ww3113306 阅读(419) 评论(0) 推荐(0)
摘要:题面:hihoCoder#1698 : 假期计划 组合数 题解: 题目要求是有序的排列,因此我们可以在一开始就乘上A!*B!然后在把这个序列划分成很多段。 这样的话由于乘了阶乘,所以所有排列我们都已经统计到了,因为划分段的时候乘了组合数,所以每段里面的不同排列都已经统计到了,所以就可以解决这道题了。 阅读全文
posted @ 2018-11-05 21:56 ww3113306 阅读(222) 评论(0) 推荐(0)
摘要:~~~题面~~~ 题解: 考场上只想到了找点双,,,,然后不知道怎么处理奇环的问题。 我们考虑对图取补集,这样两点之间连边就代表它们可以相邻, 那么一个点合法当且仅当有至少一个大小至少为3的奇环经过了它。 观察到只会出现一棵类似树的结构 + t个相对独立的环, 因为环肯定都是独立出来的,所以可以不用 阅读全文
posted @ 2018-11-02 15:07 ww3113306 阅读(273) 评论(0) 推荐(0)
摘要:在考场上遇到了这个的板子题,,,所以来学习了一下线段树分治 + 带撤销的并查集。 题目大意是这样的:有m个时刻,每个时刻有一个加边or撤销一条边的操作,保证操作合法,没有重边自环,每次操作后输出当前图下所有联通块大小的乘积。 首先观察到如果没有撤销操作,那么直接用并查集就可以维护,每次合并的时候乘上 阅读全文
posted @ 2018-11-02 14:57 ww3113306 阅读(1053) 评论(0) 推荐(0)
摘要:题意: 给定一个序列,你要将其分为k段,总的代价为每段的权值之和,求最小代价。 定义一段序列的权值为$\sum_{i = 1}^{n}{\binom{cnt_{i}}{2}}$,其中$cnt_{i}$表示当前这段序列中数字大小为i的数的个数。 题解: 先考虑暴力DP, f[i][j]表示DP到i位, 阅读全文
posted @ 2018-11-01 15:04 ww3113306 阅读(336) 评论(0) 推荐(0)
摘要:update in 2019.1.21 优化了一下文中年代久远的代码 的格式…… 什么是决策单调性? 在满足决策单调性的情况下,通常决策点会形如1111112222224444445555588888..... 即不可能会出现后面点的决策点小于前面点的决策点这种情况。 那么这个性质应该如何使用呢? 阅读全文
posted @ 2018-11-01 15:00 ww3113306 阅读(846) 评论(0) 推荐(0)

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。