图
文章平均质量分 60
Yuer-
pku.
展开
-
【bellmanford 】poj 3259 判断负环
#include #define inf 10001#define M 3000struct{ int front,end,num;}edge[M*2];bool bellman_ford(int n,int s,int E){ int d[M] = {0},pi[M],i,j; for(i = 0;i < n;i++)//初始化 {原创 2014-03-30 20:38:49 · 521 阅读 · 0 评论 -
二分图带权最大独立集
问题:在一个二分图中,每个点都有一个权值,在保证选中的点不相交的情况下,求选出的点的最大权值和解法:【最小割】前提是能把图分成二分图,比如矩阵的格子点,同一侧的各个点不会有边相连。源点向X集合连流量为权值的边,Y集合各点向汇点连流量为权值的边。X与相连的Y连流量为INF的边。对于任意一个割集,与割相连的点都删掉就会得到一个独立点集。(割边只能是源点到X,和Y到汇点的边)因此原创 2015-09-01 12:04:32 · 2787 阅读 · 0 评论 -
网络流习题
一、POJ 2391 【拆点+二分+最大流】【题目大意】给定一个无向图,点 i 处有 Ai 头牛,点 i 处的牛棚能容纳 Bi 头牛,求一个最短时间 T 使得在 T 时间内所有的牛都能进到某一牛棚里去。 (1 1500, 0 【建模方法】将每个点 i 拆成两个点 i’, i’’,连边(s, i’, Ai), (i’’, t, Bi)。二分最短时间 T,若 d[i][j原创 2015-08-29 21:35:27 · 676 阅读 · 0 评论 -
网络流
一、求最小割集http://paste.ubuntu.com/12211833/二、无源汇上下界可行流/*无源汇上下界可行流:边side(u,v)有流量上界up,下界low,构造的图使该边流量为up-low,u节点出流量low,v节点入流量low,用du[i]表示 i 节点入流之和与出流之和的差加上附加源点 S 汇点 T,如 du[i]>0,S->i 连容量为 du原创 2015-08-28 12:14:12 · 646 阅读 · 0 评论 -
最小费用最大流模板
#include #include #include #include using namespace std;const int maxn=10000;const int maxm=1000000;const int INF =0x3f3f3f3f;struct Side{ int to,next,f,c;}side[maxm];int cas, ans, top, n,原创 2014-08-10 20:47:12 · 645 阅读 · 0 评论 -
二分图带权匹配费用流模型建立
[求最小(大)权匹配的费用流建模方法]求最小(大)权匹配,可以用最小(大)费用最大流的方法。和二分图最大匹配的构图方法类似,添加附加源S和附加汇T,从S向二分图X集合中每个顶点连接一条权值为0,容量为1的有向边,从Y集合中每个顶点向T也连接一条权值为0,容量为1的有向边。然后把原有的边变成容量为1,权值不变的有向边。求从S到T的最小(大)费用最大流,就能求得最小(大)权匹配。上述建转载 2014-08-19 12:28:51 · 934 阅读 · 0 评论 -
最大流ISAP模板
#include#include#includeusing namespace std;const int maxn = 210;const int maxm = 500;const int INF = 0x7FFFFFF;#define mem(name,value) memset((name),(value),sizeof(name))struct Side{ int to,原创 2014-08-10 15:24:13 · 707 阅读 · 0 评论 -
poj2828线段树
http://poj.org/problem?id=2828原创 2014-08-12 18:58:20 · 484 阅读 · 0 评论 -
hdu3572 最大流
题意:用m个机器,处理n个任务,每个任务必须在[si,ei]时间段完成,需要pi天才能完成。每个机器只能处理一个任务, 即每天只能处理m个任务。 题解:可以采用贪心法处理,区间覆盖问题,可以参见刘汝佳的书。 或者采用最大流,建图:把每个任务和每一天看做一个点,增加源点s和汇点t,在s和每个任务之间连一条边,容量为持续 天数;在每一天和t之间连一条边,容量为m;在每个任务和对应天数之原创 2014-08-11 12:54:07 · 576 阅读 · 0 评论 -
线段树入门【学习方案
学习参考http://www.notonlysuccess.com/index.php/segment-tree-complete/原创 2014-08-12 15:34:25 · 544 阅读 · 0 评论 -
poj 1273 最大流EK增广路模板
题意:下雨的时候约翰的田里总是积水,积水把他种的三叶草给淹了,他于是做了若干排水沟,每条沟在起始处安置一个阀门来控制这条沟的最大排水量,现在给出沟的条数以及阀门的个数。并给出每条沟的最大排水量。约翰的田里的积水处是阀门1,排出水的位置是最后一个阀门。求约翰在处理积水时的最大排出量。原创 2014-08-10 10:54:11 · 491 阅读 · 0 评论 -
拓扑排序
#include #include #include #include #include using namespace std;const int maxm = 100;const int maxn = 10;int n,m;struct Side{int to,next;}side[2*maxm];int node[maxn];bool vis[maxn];int to原创 2014-05-14 21:03:16 · 440 阅读 · 0 评论 -
【spfa】 hdu 2680
http://acm.hdu.edu.cn/showproblem.php?pid=2680输入:n, m, s n个点原创 2014-04-05 00:03:44 · 510 阅读 · 0 评论 -
Kruskal【Notes】
#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long//kruskal 最小生成树 通过并查集来判断是否成环//每找到一个边,合并边两边的点,查找边的时候查看是否在原创 2014-03-23 19:58:17 · 571 阅读 · 1 评论 -
链式前向星【Notes】
#include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;const int maxn= 110000;const int maxm=11000000;//边///链式向前星//每一个边构成一个结构体struct Side{ //int from; int to;原创 2014-03-23 19:43:39 · 583 阅读 · 0 评论 -
【SPFA】 poj 3268
http://poj.org/problem?id=32681000点,1e5 单向边,要求:把所有的点到终点x以及返回的最短距离都求一遍。如果用dijkstra O(N^2) 1000*1000*1000 会超时。用SPFA O(n*m) 1000*1e5 差不多。#include #include #include #include原创 2014-04-02 18:54:13 · 523 阅读 · 0 评论 -
[kruskal]poj 1251
这周要被累死了...... 周末终于抽出时间来刷刷题....先来道kruskal热热身哈http://poj.org/problem?id=12519A 2 B 12 I 25B 3 C 10 H 40 I 8C 2 D 18 G 55D 1 E 44E 2 F 60 G 38F 0G 1 H 35H 1 I 353A 2 B 10 C 40B 1原创 2014-03-29 09:05:17 · 503 阅读 · 0 评论 -
二分图最大匹配
讲解:http://www.renfei.org/blog/bipartite-matching.html(该博客最大独立集)补充定义和定理:最大匹配数:最大匹配的匹配边的数目最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择最大独立数:选取最多的点,使任意所选两点均不相连最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,原创 2015-08-25 20:23:31 · 428 阅读 · 0 评论