- 博客(31)
- 收藏
- 关注
原创 自适应辛普森积分
老年退役选手很早以前就知道有这种科技了。不过鉴于蒟蒻的数学实在太差,学的一点点微积分内容也忘得差不多了,所以一直没有学。直到凉凉以后再打开luogu,突发奇想准备做几道NOI题,然后点开了月下柠檬树……用我渣渣的空间想象能力推了好久才推出了投影的形状,可惜还是不知道面积该怎么算。于是只好看题解(又掉rp了…),看到辛普森积分……那就学一下吧orz。于是就很颓废地学了一下,写了个板子...
2019-03-22 09:59:47
1018
原创 最小生成树的Boruvka算法
偶然得知了居然还有这种神奇的算法,qwq。老年选手觉得很有意思,所以颓废地学了一下……简单来说,它就是一个多路增广的Kruskal。Kruskal为什么是对的它就为什么是对的它的流程是这样的:1.对于每个连通块,找到一条由它内部的点连向其它连通块的最小边。2.把这些最小边加入进去。(注意加入的时候要判它是不是连接了两个不同连通块)3.如果已经放进去了n-1条边则退出,不...
2019-03-20 16:31:09
5123
原创 【多项式n连】各种多项式模板(从入门到入土)
qwq。。。好像很久没有写博客了的样子。。。因为最近一段时间一直处在觉得自己太蒻了的焦虑当中。。。导致啥也没学进去。。。这样的。。。本来定下的肝高数和概率论的计划也因为各种各样的原因没能完成。。。而降低到了只是零散地又复习了一些数学。。。然后发现luogu上有很多多项式的板子。。。就去做了一点。。。这样子。。。然后发现好久没更博客了。。。就准备放上来一些。。。也算是水一水博客了。。。反正老年选手已...
2019-03-04 11:32:54
1862
原创 虚树模板详解和例题
虚树:原树中给一些点,通过一些lca把它们重新连接在一起建成一棵新树,相当于对树进行了化简。新树边上的信息可以用树链剖分/倍增等维护。如何建虚树:假设给出的点都存在d数组里。对于这些点,按照它们在原树中的dfs序从小到大排个序。然后我们建一个栈,从栈底到栈顶相当于是一条当前虚树根一直往下走的链。遍历d数组,假设当前要加入的点是v,栈顶的点是u,1.lca(u,v)==u 显...
2018-12-14 10:58:08
627
原创 关于后缀自动机的一些感性理解
正文前的例行吐槽:蒟蒻phd对SAM完全接受不能。SAM is a spiritual automatical murder...在我学习SAM的这几天里它无时无刻不在对我进行着精神谋杀QAQ。。。于是,如果有错误的地方欢迎指出qwq正文:最初,我们的目的非常简单。给出串T和串S,希望判断T是否是S的子串。我们可以设计一个DFA来判断。暴力:每个节点表示一个子串,走...
2018-12-06 17:19:50
214
原创 luoguP2081迷失游乐园(期望dp)
我是一个期望弱菜。因此这本来是一个很裸的dp,我还是只能看题解。看来数学还是要好好学啊。。。首先我们先考虑一波普通树怎么做。其实就是树形dp,按照期望的含义一波模拟,照本宣科地写写。。。往下走的期望:f[i]=sum(f[son[i]]+e[i][son[i]])/d[i]往上走的期望:g[i]=(g[fa[i]]+f[fa[i]]*d[fa[i]]-(f[i]+e[i][fa...
2018-12-04 15:50:45
217
原创 bzoj1095动态点分治
写在正文前的例行吐槽:我终于,终于,终于也是写过动态点分治的人了。。。加上动态dp和动态树是不是就可以集齐套装召唤神龙了呢。。(思考ing)动态点分治:你会碰到一类问题。。有多个修改询问之类的操作。。可以用一次点分治回答一次询问这时候我们可以把点分树建出来。。。点分树有一些性质:1.树高不超过log层。(显然吧orz。。。)2.在进行点分治时,套路就是从当前点出发向...
2018-11-28 12:07:39
285
1
原创 关于LCT的一些口胡
LCT无疑是一个毒瘤。。因为它巨巨巨巨巨难写QAQ(这当然是对于我这种splay都还没怎么写熟的小蒟蒻来说QAQ巨佬可以无视这篇博客了QAQ) 首先它维护了一些虚虚实实的链以此来维护动态森林。。我们可以用它来干一些维护链、合并或分裂树、换根之类的操作。。它具体是个啥呢。。有很多颗splay,如果树上有个节点x,那么它在splay中的节点编号也是x,每个节点在且仅在一颗splay里。...
2018-11-19 17:11:00
216
原创 luogu4719+NOIP2018day2T3 动态dp
在进入正文以前,我想先哭一下。嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤我嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤嘤事实上在NOIP2018以前,我看到过动态dp的课件,然后觉得看起来很有意思。但是我竟然没有仔细去看!没有仔细去看!。。。内心:NOIP肯定不会考这种东西呀orz......(flag)然后NOIP2018day2T3就是动态dp裸题。呵呵呵呵呵呵呵。。。...
2018-11-13 16:52:24
337
原创 NOIP2018爆炸记
orz...刚刚过去的NOIP2018使我感觉到森森的恶意。day1:T1:洛谷试练场原题啊摔!QAQ。。搭积木。。T2:又是一道原题。。T3:没见过,但听说又是一道原题。前半个小时看到T1T2要贪心就慌张了。然后对T1脑补了10分钟的线段树?堆?splay的分裂?。。然后觉得这样肯定药丸,就冷静了一下,然后突然发现T1T2的疑似正解,由于码量比较小,很快码完了,然...
2018-11-12 10:22:40
442
原创 bzoj1086王室联邦
这个贪心好妙啊。。。蒟蒻的我看到1000就想了半天的n^2树形dp。然后觉得这不可做啊??怎么记录方案啊??balabala...然后就开始贪心。搞啊搞啊搞啊。。。。然后怒写很不简洁的代码各种分类讨论写到最后自己都不知道写了些啥。网上一搜好妙啊。。。其实就是超过了B就开个块扔进去了。为啥这样是对的呢。。。这样肯定不超过2B(......==)啊摔!想题时的我为什么这么傻啊这么傻啊这...
2018-11-06 14:51:09
207
原创 bzoj4637 矩阵树定理
long double的输出方式真的是个迷啊。矩阵树定理:设矩阵A=度数矩阵-邻接矩阵。无向图的生成树个数就是A的n-1阶主子式的值。有向图。。外向树:A=入度矩阵-邻接矩阵。内向树:A=出度矩阵-邻接矩阵。答案是A去掉根所在的一行一列的n-1阶主子式的值。证明:留坑。。关于此题:由于期望的线性性,ans=sum(每条边的权值*它出现在最小生成树中的概率)。...
2018-10-22 14:46:16
427
原创 左偏树的简单总结
前言:蒟蒻的我第一次看到左偏树这个名词的时候还在学习dfs。。并且还不会写树。。233然后我仿佛打开了新世界的大门。。开始疯狂地点击百度跳出来的各种算法链接。。并成功看到了斐波那契堆二项堆斜堆左式堆之类的奇怪名词。。。之后在刷luogu试练场时出于好奇的心理点开了提高(?还是省选 忘了orz)常用模版题。。又看到了左偏树于是我对左偏树产生了奇怪的执念。。。于是在很久很久以后我终于肝起了...
2018-10-18 16:17:48
213
原创 拉格朗日插值法
推公式利器如果要求一个未知系数的n次多项式,必然要给出n+1个线性无关的方程。把系数看成未知数,可以高斯消元;高斯消元是n^3的,对于比较大的数据就gg了。然后就要开心地上拉格朗日插值法。。仔细观察多项式,多项式也可以看成是一个函数,经过点(x0,y0)..(xn,yn)。是否可以构造出这样的函数式呢?(可以证明,一旦构造出来,两者是等价的)可以的。设多项式为L(x)。...
2018-10-11 16:42:02
1177
原创 kruskal重构树
经常碰到一类题目,让你在一个具有某种特殊性质(边权>=/<=x)的连通块内做一些操作,有多个询问。这时候就希望可以找出一种数据结构,使得每个连通块都可以恰好变成一棵子树,然后维护维护就可以了。能不能找到呢?当然是可以的。这就是kruskal重构树。在做kruskal的过程中,将加入的边建成一个点,作为它连接的两个集合的父亲。这样造出的树通常是个大根堆/小根堆,且它和最小...
2018-10-05 22:00:11
367
原创 数论三连3·CRT和EXCRT
蒟蒻的我终于调出了屠龙勇士。。数论三连终于可以集齐了,留念一下。。。CRT:构造啊构造。。害怕。。有一堆形如ai*x=ci mod bi的东西。(ai,bi两两互质)设M=b1*b2*..*bn;Mi=M/bi; 那么其实就是求解ai*(Mi*x')=ci mod bi->x'=ci*inv(ai*Mi), 于是通解x=sum(ci*inv(ai*Mi)*Mi)+k*M。...
2018-10-05 15:24:07
381
原创 数论三连2·LUCAS和EXLUCAS
LUCAS:C(n,m)=C(n%P,m%P)*C(n/P,m/P);m比较小或P比较小,而且P是质数的时候可以用。EXLUCAS:和LUCAS其实关系不大啊。。我一开始被名字误导了,分解质因数以后在非常傻地LUCAS求组合数,然后理所当然地WA了。。正确做法是分解质因数以后用神奇的方法求出阶乘,再用CRT求解,解就是要求的组合数了。神奇的求阶乘方法:设分解出的第i项是pi^ki,...
2018-10-04 19:41:43
251
原创 luogu2260 数论分块的板子题
今天是颓废的一天。。上午考试gg了,下午迷之困倦。。本着这个时候肝肝数学题往往有奇效的心态,我去luogu里随便找了一道题。。然后竟然意外地弥补了一下我水弱无比的数论分块,神奇。题解:这道题最难的就是sum(n/i * m/i *i*i)了吧。。然后这个东西我本来以为是O(n)的,但是后来想了一下,考虑到每个n/i,m/i都是一段区间,看成4*sqrt(n)个端点在一条线段上分布,最多...
2018-10-03 14:50:59
733
原创 数论三连1·BSGS和EXBSGS
BSGS:用于求解a^x mod c=b。(gcd(a,c)==1)设m=floor(sqrt(c)),则x=i*m-j;->a^(i*m) mod c=b*a^j mod c。然后事先map/hash储存所有右边的值,枚举I看是否能找到等式即可。然后i要从1开始,不然会出现诡异的负数。那么EXBSGS是什么? 当a,c不互质时,a^(-j)没有意义,此时BSGS会失效,需要...
2018-10-02 13:55:20
293
原创 loj10097 2-sat
前言:一开始接触2-sat问题的时候我觉得一切都是那么显然。。。然后碰到题目就上2-sat。。。毫无意外地WA了一堆。然后我以为是有鬼畜的数据,于是没有调。然后我做到了这道题。。。写着写着突然对自己以前的理解产生了怀疑,感觉每一步都很需要证明啊。。。没有证明的话,瞎写当然会WA。于是我就证(luan)明(gao)了一发。题意:裸题不说了。orz。这里非常重要的一点在于,ab...
2018-09-29 10:41:26
296
原创 loj10099 点双连通分量
点双连通分量+判断割点。(99是一个神奇的题号值得纪念!!)void tarjan(int k,int pre){ dfn[k]=low[k]=++tot; s.push(k); int cnt=0; repedge(i,k){ if ((pre!=-1)&&((i^1)==pre)) continue; //由于无向图建边,这边其实就是pre int v=edg...
2018-09-28 13:17:41
273
原创 loj10082 word rings 字符串接龙的神奇建图+dfs版spfa
对于菜鸡博主而言,此题建图妙啊。。。记下来orz一波。然后dfs版spfa对于找最短路当然慢得一比,但是找有没有环就快了。。然后从多点dfs不仅因为图可能不连通,也是因为如果有正环,必然存在某个点,从该点开始到找到正环,经过的所有点dis都>0。//可以看成走一条dfs树上的链,在链上的点标记一下,一旦出现回边就找到环了。int dfs(int k,double x){...
2018-09-26 08:21:34
207
原创 01bfs
关于01bfs的诡异经历:打完某场比赛以后,水菜的我愉快地看起了题解。只见题解中说:发现边权只有0/1,那么显然bfs一下就好了。我:嗯嗯嗯说得好有道理……理……?????!!!bfs不是边权只有1吗????难道bfs的应用我都能记错??我要从普及组开始gg了??于是内心一顿退役,一度怀疑人生。然后按照题解打了一波。WA了。果断百度之。。。然后。。。才知道有01bfs这种东...
2018-09-25 14:47:21
1587
原创 loj10081 spfa的SLF优化
用deque,每次要加入一个点时,如果它距离比队首小就把它变成队首。玄学优化。。orz。#include<bits/stdc++.h>using namespace std;#define rep(x,y,z) for (int x=y; x<=z; x++)#define downrep(x,y,z) for (int x=y; x>=z; x--)#def...
2018-09-25 14:40:06
158
原创 bzoj1006 弦图相关
弦图啊。。。鬼畜的东西。。。害怕。水弱如我当然不能理解这种神奇东西了所以有错的话求指出啊orz。。点集V的诱导子图:E={(u,v)| u属于V,v属于V}。弦图:没有长度超过3的无弦环的图。单纯点:与该点相邻的点的诱导子图是个团。完美消除序列:点的排列p1,p2..pn,使得对于每一个pi,pi在pi+1~pn中的诱导子图中是个单纯点。定理:当且仅当一个图有完美消除序列时它是...
2018-09-25 14:16:50
283
原创 bzoj1004 Polya计数
burnside引理:ans=sum(x(f)=置换f的不动点数)/(|G|=置换数);置换f的不动点:如果方案x经过置换f后仍然不变,它就是置换f的一个不动点。polya计数:将置换分解成轮换后直接推不动点数。以本题为例,分解成轮换后,不动点满足:1.每个轮换内部所有点颜色相同。2.对于整个置换而言,sum1=a,sum2=b,sum3=c。dp即可。#include<...
2018-09-25 12:14:00
225
原创 poj1734 无向图最小环
要求对floyd算法有一定的理解。有一个神奇的地方:路径是边做边更新的,防止了出现重复的点。(在不同的k时更新的路径,中间点g[i][j]是会变化的)#include<bits/stdc++.h>using namespace std;#define rep(x,y,z) for (int x=y; x<=z; x++)#define downrep(x,y,z)...
2018-09-21 12:48:40
298
原创 bzoj2654 一道神奇的最小生成树
哇这真是一道可怕的题目。。首先我们发现,由于题目保证有解,放缩白边的边权,一定可以找到一个值使最小生成树里恰好有need条白边,答案一定是在这些最小生成树的边权和里面找的。然而有一个非常严肃的问题。。减去的白边边权最后还是要加上的啊orz。。于是我们在二分的时候,希望求出至多能够放多少条白边,如果最多也只能放need条了那才行啊,不然本来可以用黑边(避免权值被加回来)的地方放了白边,看起来...
2018-09-21 10:47:50
678
原创 gcd(伪)莫比乌斯反演(真)
今天的NOIP模拟中出现了一道奇怪的题目。。。它让我明白了考试的时候脑洞要大。。。做不出就不要大意地先反演一波对于做过了反演题的人来说,提到了gcd、计数还看不出它和反演有关,是应该要被打的。。。所以我要记录下来引以为戒。gcd【题目描述】有 n 个正整数 x1~xn,初始时状态均为未选。有 m 个操作,每个操作给定一个编号 i,将 xi 的选取状态取反。每次操作后,你需要求出选取...
2018-09-20 21:48:40
605
原创 关于SG函数的一些浅显的感性理解
有向图博弈。给定一个有向图,一个起点,起点上有一个棋子,两个玩家轮流推动棋子,谁不能推了谁就输了。希望知道某个点为起始是必胜还是必败。注:这两个人都十分聪明,可以看透未来(?)。一点分析:1.显然这要是个DAG,不然游戏就不能结束了。。(废话) 而且两个人要在同一张图上操作,轮流进行。。(即所谓的公平游戏)2.这两个人都很聪明是什么意思呢。。就是说对这两个人而言,这个游戏相当于是...
2018-09-18 20:08:52
247
原创 hdu3487-splay模版题
通过分裂、合并来提供区间的旋转、插入操作。可以在区间[1,n]的首尾加上虚拟节点防止RE。做各种需要用到儿子的操作前都先pushdown。旋转时,gf->f->s,如果成一条直线,则先旋转gf,再转f;反之,先转f,再转gf。代码:#include<iostream>#include<cstdio>#include<algorithm&...
2018-09-12 10:15:47
243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅