上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 快速读入字符 快速读入数字 或 快速读入字符串 阅读全文
posted @ 2017-09-13 16:58 Bennettz 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 一.普通并查集 二.带权并查集 http://cogs.pro/cogs/problem/problem.php?pid=298 阅读全文
posted @ 2017-08-14 11:48 Bennettz 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 应用范围 对于区间内每一组修改,如果修改范围是连续的,并且非在线,基于这种特性,我们可以用差分序列 方法 用一个数组a记录每位和前一位的差,区间修改时就对数组a的区间首端加上x,再在区间末端+1处减去x,最终用前缀和数组加以统计,就可以得出所需的值。 例题 http://cogs.pro/cogs/ 阅读全文
posted @ 2017-08-02 18:21 Bennettz 阅读(2111) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std; inline void in(int &x){ char c;x=0; do c=getchar(); while (c'9'); while (c>='0'&&c>1; if (a[mid]>1; if (a[mid]<=x)l = mid+1; ... 阅读全文
posted @ 2017-07-17 11:52 Bennettz 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 普通筛 线性筛 每个合数除1外最小的因数一定是素数,只利用这个素数筛没有重复 例题POJ3292 Semi-prime H-numbers(线性筛素数变形) 阅读全文
posted @ 2017-05-23 20:42 Bennettz 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 求割点 DFS搜索树:用DFS对图进行遍历时,按照遍历次序的不同,我们可以得到一棵DFS搜索树。 树边:(称为父子边),可理解为在DFS过程中访问未访问节点时所经过的边。 回边:(返祖边、后向边),可理解为在DFS过程中遇到已访问节点时所经过的边。 该算法是R.Tarjan发明的。观察DFS搜索树, 阅读全文
posted @ 2017-05-19 21:03 Bennettz 阅读(214) 评论(0) 推荐(0) 编辑
摘要: c为树状数组,c[i]存储i-lowbit[i]+1到i的数组的值 c[x+ lowbit(x)]为c[x]的父亲节点 http://cogs.pro/cogs/problem/problem.php?pid=264 阅读全文
posted @ 2017-05-17 21:44 Bennettz 阅读(139) 评论(0) 推荐(0) 编辑
摘要: Kruskal算法 Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。 http://cogs.pro/cogs/problem/problem.php? 阅读全文
posted @ 2017-05-16 21:24 Bennettz 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 定义:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我们称V为闭合图。最大权闭合图即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。 做法:首先我们将其转化为一个网络(现在不要问为什么,接下来会证明用网络 阅读全文
posted @ 2017-04-21 22:02 Bennettz 阅读(231) 评论(0) 推荐(0) 编辑
摘要: Dinic算法的基本思路: 根据残量网络计算层次图。 在层次图中使用DFS进行增广直到不存在增广路 重复以上步骤直到无法增广 用BFS建立分层图 注意:分层图是以当前图为基础建立的,所以要重复建立分层图 用DFS的方法寻找一条由源点到汇点的路径,获得这条路径的流量I 根据这条路径修改整个图,将所经之处正向边流量减少I,反向边流量增加I,注意I是非负数 重复步骤2,直到DFS找不到新的路... 阅读全文
posted @ 2017-04-20 19:11 Bennettz 阅读(196) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页