KGV093的博客

Revelations and heartaches, make you realize.

bzoj 3894(最小割)

传送门 经典的建图模型,本蒟蒻赶紧orz。 1.source连p(容量为art),p连sink(容量为science) 2.source连p1(容量为same_art),p1连p及其相邻点(容量为INF) 3.p2连sink(容量为same_science),p及其相邻点连p2(容量为IN...

2017-07-31 09:41:04

阅读数 115

评论数 0

主席树模板

维护n棵1~i的前缀权值线段树,每次查询减一下就好了。 poj 2104就是模板题,裸的静态第k大,需要先离散化,不会的就用lower_bound()多试试,研究研究应该就能懂。#include<cstdio> #include<cstring> #include<...

2017-07-31 09:05:18

阅读数 102

评论数 0

欧拉线性筛模板

O(n)求欧拉函数φ(i):inline void linear_shaker() { bool vis[maxn]; memset(vis,false,sizeof(vis)); phi[1]=1; for (int i=2;i<maxn;++i) { ...

2017-07-31 08:58:03

阅读数 317

评论数 0

扩展中国剩余定理模板

这就是神奇的非互质版CRT,同余方程组中各个模数可能不互质,如果再用以前互质版的做法就会出错(这个的原因我也没有深究,如果有兴趣的小伙伴懂的话欢迎在评论区里指点本蒟蒻)。 对于模数不互质的情况,需要逐个合并方程求解,具体证明如下图: 还是FZU 1402的代码, 非互质版算法同样适用于模数...

2017-07-31 08:53:10

阅读数 387

评论数 0

中国剩余定理模板

这个定理有两个版本,下面是互质版(非扩展版)的代码,具体讲解可以参考信息学竞赛数学一本通。做法大概就是: 把一个同余方程组: x≡b1(mod m1) x≡b2(mod m2) x≡b3(mod m3) …… x≡bn(mod mn) 转化成n个同余方程组: x≡0(mod m1)...

2017-07-31 08:41:25

阅读数 218

评论数 0

bzoj 3144(最小割)

传送门 最小割,主要考查建边的思路。本蒟蒻也是看了好几位大佬的博客才看懂。比如: 参考1 参考2 (x,y,z)连接(x,y,z+1)容量为f(x,y,z) (x,y,z)连接(x’,y’,z-d)容量为inf,其中 (x,y)与(x’,y’)相邻 然后跑一边最小割即可。注意! 立体...

2017-07-30 21:13:01

阅读数 164

评论数 0

bzoj 4517(组合数学)

错排公式: d(n)=(n-1)*(d(n-1)+d(n-2)); ans=C(n,m)*d(n-m); 其中需要预处理阶乘和逆元。 逆元线性递推如下:inv[i]=(mod-mod/i)*inv[mod%i]%mod;/* Staggered Formula: d...

2017-07-30 19:09:40

阅读数 119

评论数 0

hdu 3853(期望dp)

传送门 题解: 设dp[i][j]表示从(i,j)走到(n,m)的期望花费,倒推即可。 P.S.小心停留概率为1的情况,必须跳过,否则会除0。#include<cstdio> #include<cstring> #include<iostream> #in...

2017-07-30 14:42:05

阅读数 190

评论数 0

tarjan(SCC)模板

hdu 1269即模板题,缩完点后判断点数是否为1即可。 图论题一定要记着memset(head,-1,sizeof(head))(如果题目不含0号点也可以memset成0),否则就坐等TLE吧。。。#include<cstdio> #include<cstring> #...

2017-07-30 14:17:58

阅读数 356

评论数 0

bzoj 1179(tarjan缩点+最长路)

传送门 用tarjan缩点后在DAG上跑一个SPFA最长路即可,数组有点多,该memset的一定要memset。#include<cstdio> #include<cstring> #include<iostream> #include<algorith...

2017-07-30 14:12:10

阅读数 316

评论数 0

codeforces 438D(线段树)

传送门 几乎是线段树模板题,只需进行剪枝:对于区间最大值大于模数的区间才进行模运算。#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include...

2017-07-30 11:12:59

阅读数 178

评论数 0

hdu 1394(线段树)

传送门 就是线段树维护逆序对数。 当前的ans即上一次的ans+(n-a[i]-1)-a[i]。 a[i]是当前排在队首的元素与后面形成的逆序对数,(n-a[i]-1)是当前排在队首的元素与后面形成的正序对数,将队首移至队尾即将两个交换一下。/* sum=last_sum+(n-a[...

2017-07-30 09:34:51

阅读数 122

评论数 0

暑期集训第一阶段总结(附带杂题总结+字符串总结)

杂题学的不太尽人意,虽然涉猎了很多新的知识、方法,但是很多东西没有经过充分的思考,不过这多少帮我发现了一个大问题,也算是有收获吧,后面的改进措施一定要落实,一定要落实,一定要落实!!! 说实话,这两天的字符串学的结果比我想象的要好。虽然有些题没有具体写(比如Aho-Corasick Automa...

2017-07-29 21:00:33

阅读数 176

评论数 0

poj 2155(二维树状数组)

二维树状数组维护差分前缀和(并不知道说准确没有,反正大概就这个意思) 话说这个题在输出格式上挖坑我也是醉了,PE了两次。。。 #include<cstdio> #include<cstring> #include<iostream> #include<...

2017-07-29 20:14:47

阅读数 143

评论数 0

倍增LCA模板

poj 1330即一道倍增LCA模板题,注意在倍增往上跳时每个while语句的终止条件,WA了后几次就是因为跳飞了。。。#include<cstdio> #include<cstring> #include<iostream> #include<algor...

2017-07-29 19:20:11

阅读数 293

评论数 0

莫比乌斯反演定理的证明

https://www.zhihu.com/question/23764267/answer/26007647 直接去上面这个网址看吧,看一位叫做Syu Gau的大神的证明,写得非常清晰,本人不太会传图片(╯#-_-)╯,所以就不在此处再写一遍了。。。

2017-07-29 19:15:19

阅读数 659

评论数 0

bzoj 2301(Mobius)

基本上可以算是一道莫比乌斯反演的模板题,大概就是推出式子然后分块求和。 讲解部分转自:outer_form的博客 大意就是求在a<=x<=b,c<=y<=d,满足gcd(x,y)是k的(x,y)的对数。分析:令g(n,m,k)表示在1<=x<=n,1<...

2017-07-29 19:06:37

阅读数 170

评论数 0

C++读入优化模板

正整数:inline int read() { int x=0;char c=getchar(); while (c<'0'||c>'9') c=getchar(); while (c>='0'&&c<='9') x=x*10+c-'...

2017-07-29 15:40:09

阅读数 189

评论数 1

Dijkstra+堆优化模板

稳定的最短路算法,除了不能处理负环以外几乎完美无瑕,在SPFA被特殊数据卡的时候也能用。struct NODE { int id,dis; friend bool operator <(const NODE &a,const NODE &b) { ...

2017-07-29 15:33:31

阅读数 190

评论数 0

Dinic模板(附带当前弧优化)

数组定义大小根据题目需要确定,参考了Flaze的博客。大多数最大流最小割的题套上模板再连好边就能过。struct EDGE { int v,nxt,r; }e[maxn*maxn*6<<1]; int cur[maxn*maxn],dis[maxn*maxn],head[max...

2017-07-29 14:43:57

阅读数 494

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭