- 博客(15)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注

原创 网络流初步之最大流(增广路算法)
网络流是一个联通图;网络流有如下三个性质:1.一条边上容量恒大于流量。2.斜对称性,f(u,v)=-f(v,u);3.对于非源点和汇点有sigema(i,j){i,j属于E}=0;为了更方便算法的实现,一般根据原网络定义一个残量网络。其中r(u,v)为残量网络的容量。r(u,v) = c(u,v) – f(u,v)*反向边也有r!!!!增广路是指一条源点到汇点的
2017-02-10 22:51:37
716
原创 Dark的项链(树链剖分)
P2272 - Dark的锁链Description无向图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark有N – 1条主要边,并且Dark的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark还有M条附加边。你的任务是把Dark斩为不连通的两部分。一开始Dark的附加边都处于无敌状态,你只能选择一条主要边切断。一旦你切断了一条主要
2017-02-10 14:11:47
325
原创 树链剖分
定义: siz[]数组,用来保存以x为根的子树节点个数top[]数组,用来保存当前节点的所在链的顶端节点hson[]数组,用来保存重儿子drep[]数组,用来保存当前节点的深度fa[]数组,用来保存当前节点的父亲id[]数组,用来保存树中每个节点剖分后的新编号两遍dfs求出以上信息,连边成重链,按照新的编号建树(有的题目这一步可省略);剩下全是线段树的操作查询或修改
2017-02-10 08:38:05
292
原创 树型DP
树型DP不同于普通的的DP之处在于:通过递归找出儿子的信息,在回溯的过程中DP,计算结果(似乎很像记忆化搜索。。。。。。)然后处理相关信息,回答询问》》》》》》》经典应用:点分治中求重心,树链剖分中求重儿子,等等。。。。。。。。。
2017-02-08 21:15:19
330
原创 点分治。。。。。
点分治,就是在树上分治,讲得很高大上。。。。。。。。实际上就是findroot,answer两个操作;根据分治的处理方法:分成若干个子问题因此,在每次dfs都要查找root;据说这样就是优化。。。。
2017-02-07 11:53:47
238
原创 巧克力
在某年某月某日,小D莫名其妙的得到一块超级大的魔法巧克力,于是他决定将这块巧克力切成若干块送给幼儿园的其他小朋友。这是一块n*m的矩形巧克力,所以小D准备将它切成n*m块。由于这块巧克力是一块魔法巧克力,所以必须按照特殊的方法进行切割。巧克力上共有n-1条横线和m-1条竖线,每次小D可以沿着其中的一条线切开某一块。而且这样切一次的代价只跟所切的线有关,而与所切的长度无关。沿着每条横线切一次的代
2017-02-06 16:08:40
1121
原创 离散化初步
离散化初步:离散化对于处理数据值较大,数组无法存储,而值又与所求结果关系不大时有妙用这里利用系统标准模板库STL实现,考场上建议用STL,手写会很麻烦的。。。。。。。。。1.sort(a,a+n)排序。。。。这个不用说2.unique(a,a+n)去重,返回最后那个完成去重的点的位置,好像是地址,所以减一个a;3.lower-boud(a,a+n,x)返回a[0]-a[n-
2017-02-04 22:21:20
552
原创 NOI全国赛(1998)——围巾裁剪
裁缝有一块非常珍贵的丝绸围巾。可惜的是,围巾的某些部分已经被蛀虫给咬坏了。裁缝当然不愿意就这么把围巾给丢了,于是,他想把围巾给裁成两块小围巾送给他的两个女儿。自然,两块小围巾的面积之和越大越好。 这块围巾是一个正三角形,三条边被均匀地分成了N段,即这个正三角形被均匀地分成了N2个单元,每个单元是一个面积为1的正三角形。图一所 示为一个N=5的围巾,图中带阴影的单元表示被蛀虫咬坏的部分。从上往下
2017-02-03 21:55:01
776
原创 关于Tarjan(3)——离线LCA
LCA(最近公共祖先),指对于一棵树上任意两个节点往上走最早都能到达的节点。求LCA有两种方法,一种是倍增,另一种则是Tarjan。。。。。。。。Tarjan巧妙利用并查集的思想;这里的Tarjan是离线算法先Tarjan下去;首先有fa[NUM]=num; 回溯时将子节点的fa变为num如果对于num的询问中另一个点已经访问;那他们的LCA为另一个点的find(f
2017-02-02 20:11:37
253
2
原创 丑数(USACO)
这个题是一个动态规划加优化的经典题1246 丑数 USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond题解题目描述 Description对于一给定的素数集合 S = {p1, p2, ..
2017-01-29 23:37:24
1136
原创 NOI全国赛(2001)--食物链
今天写了道并查集的题,看来并查集的题刷少了,,,,,用法好神奇啊!!!开三倍并查集用i表示自己,i+n存天敌,i+2*n存可以克制de,再逻辑判断一下即可。所以,要意识到并查集的分类处理可以开不同倍数的空间来适应题目要求。1074 食物链 2001年NOI全国竞赛 时间限制: 3 s 空间限制: 64000 KB
2017-01-25 16:28:03
334
原创 HNOI(湖南省选试题)——永无乡
今天写了一道十分巧妙的数据结构题———永无乡(看的题解。。。。。。)永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连通的。现在有两种操
2017-01-23 22:13:03
339
原创 关于Tarjan(2)
Tarjan有第二个神奇的用法,求强连通分量!!!!!!!!!!!!!!!!!!!同样利用了dfn:dfs序,low:能回到的最早祖先的dfn;废话少说 上板子#include#include#include#include#include#include#include#include//栈的stl需要头文件 #includeusing namespace std;
2017-01-23 10:26:14
193
原创 关于Tarjan(1)
众所周知,Tarjan这个人特别调子,在图论等方面有重大成效,如离线求LCA,强连通分量,割点等。这里只对求割点进行代码剖析。所以上板子void tarjan(int now){//now当前节点 int num1=0;//dfn为时间戳,low为时间戳最小的祖先 dfn[now]=low[now]=++num; vis[now]=true; for(int i=
2017-01-22 19:06:10
311
原创 关于Trie KMP AC自动机
个人认为trie,KMP,AC自动机是思想非常明确的,AC自动机的性质是与KMP的思想类似的(失配后跳转)而KMP是线性的,AC自动机是在tire树上跑KMP,为方便那些不会用指针的小朋友(我也不会。。。。)我的tire树,kmp的next,AC自动机的fail全是用数组实现的!!!!(还有谁???!!!)所以上板子1,KMPvoid make() {//建立next数组
2017-01-20 09:20:33
472
2
TA创建的收藏夹 TA关注的收藏夹
TA关注的人