图论
Jiahe Xu
为何要去攀登珠穆朗玛峰,因为她就在那里啊.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj2186 Popular Cows 强联通
只是模板。#include #include #include #include #include #define M 50000using namespace std;int a[M],b[M],num,next[M],p[M],n,m,e,dfn[M],index,low[M];int top,instack[M],flag[M],belong[M],Flag,out[M],j原创 2014-11-03 11:03:16 · 673 阅读 · 0 评论 -
bzoj1880: [Sdoi2009]Elaxia的路线 wikioi2309 SPFA
从四个点开始各扫一遍spfa()原创 2014-07-08 23:36:20 · 831 阅读 · 0 评论 -
wikioi3287汽车运输 MST+LCA
#include #include #include #include #include #define rep(i,n) for(int i=1;i<=n;++i)#define imax(x,y) (x>y?x:y)#define imin(x,y) (x<y?x:y)using namespace std;const int N=10010,M=60010,E=20010,原创 2014-08-18 19:50:56 · 957 阅读 · 0 评论 -
bzoj3553: [Shoi2014]三叉神经树 树链剖分
此题的完成,代表近期的树链剖分就告一段落,全力进入联赛复习。原创 2014-09-13 00:20:23 · 1466 阅读 · 0 评论 -
vijosP1754 最优贸易
双向bfs第一次求最短路,第二次求最长路,两次的原创 2014-10-08 16:34:22 · 975 阅读 · 0 评论 -
hdu1814 Peaceful Commission 2-sat
裸的2-sat 因为要输出最小序所以奇数尽量原创 2014-09-29 16:40:52 · 635 阅读 · 0 评论 -
hdu1599 find the mincost route floyd求最小环
floyd求最小环#include#include#include#includeusing namespace std;int n,e,d[105][105],data[105][105],mina;void floyd(){ int i,j,k,mina=1000000; for(k=1;k<=n;k++) { for(i=1;i<k;原创 2014-07-19 15:27:27 · 484 阅读 · 0 评论 -
voj1101 传染病控制 A*搜索
#include #include #include #include #include #include using namespace std;#define maxn 400int n,m,ans,tot,f[maxn];vectortree[maxn],g[maxn];bool vis[maxn];void build(int num){ int loop=原创 2014-08-07 20:42:43 · 742 阅读 · 0 评论 -
bzoj1977: [BeiJing2010组队]次小生成树 Tree
由于要求严格次小原创 2014-11-02 08:11:31 · 720 阅读 · 0 评论 -
bzoj1006: [HNOI2008]神奇的国度 弦图染色
弦图染色详细见论文http://wenku.baidu.com/view/6f9f2223dd36a32d73758126.html 本人用的是CMS原创 2014-07-04 17:56:41 · 1180 阅读 · 0 评论 -
poj3177 Redundant Paths 简单双联通求桥
tarjan双联通。由于有可能有重边,所以map记录两点是否有原创 2014-10-16 16:21:21 · 548 阅读 · 0 评论 -
poj1637 Sightseeing tour dinic
直接借用讲义。。。【题目大意】混合图欧拉回路。(1 【建模方法】把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。好了,现在每个点入度和出度之差均为偶数。那么将这个偶数除以2,得x。也就是说,对于每一个点,只要将x条边改变方向(入>出就是变入原创 2014-11-18 21:38:17 · 565 阅读 · 0 评论 -
poj3281 Dining Dinic
由于牛只能选一次,所以对牛进行拆点。原创 2014-11-17 19:01:25 · 529 阅读 · 0 评论 -
poj1149 PIGS DINIC
题意: 有 M 个猪圈,每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。依次来了 N 个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪。每个顾客分别都有他能够买的数量的上限。每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。分析: 此题是网络流,网络流里经典的构图题。将顾客看作除源和汇以外的节点,源和每个猪圈的第一个顾客连边,边原创 2014-11-16 21:52:31 · 598 阅读 · 0 评论 -
wikioi1237 餐巾计划问题
费用流。把每天分为二分图两个集合中的顶点Xi,Yi,建立附加源S汇T。1、从S向每个Xi连一条容量为ri,费用为0的有向边。2、从每个Yi向T连一条容量为ri,费用为0的有向边。3、从S向每个Yi连一条容量为无穷大,费用为p的有向边。4、从每个Xi向Xi+1(i+15、从每个Xi向Yi+m(i+m6、从每个Xi向Yi+n(i+n求网络最小费用最大流,费用流值就是要求原创 2014-07-07 22:28:30 · 873 阅读 · 0 评论 -
poj2931 Ombrophobic Bovines dinic
坑点:答案很大会爆int 细节点很多,二分原创 2014-11-18 16:56:40 · 702 阅读 · 0 评论 -
LA 6234 Tile Cut dinic
蛋疼的输入。。。。。原创 2014-11-22 15:53:22 · 735 阅读 · 0 评论 -
ZOJ 1654 Place the Robots DINIC
题意:一个n*m地图,*代表草地,#代表墙,o代表空地,要再图中的o处放机器人,机器人可以攻击(上下左右)4个方向,攻击范围无限长,而且机器人不能相互攻击,草地不能放置机器人,且机器人的攻击可以穿过草地,但是机器人的攻击不能穿过墙,比如 “ *o#o ”这一行就可以放两个机器人,” o*oo “ 这一行就只能放一个,问最多能放多少个机器人?思路:采用分块的思想进行建图,什么是块?联系原创 2014-11-21 19:06:36 · 588 阅读 · 0 评论 -
bzoj1832: [AHOI2008]聚会 LCA
一看就是LCA,输入a,b,c集中的点肯定在LCA(a,b) 或LCA(c,b)或LCA(a,c)上,取最小值就可以了。#include #include #include #include #include #include using namespace std;#define maxn 510000#define deg 20int fa[maxn][deg],n,f1,f原创 2014-12-14 21:58:16 · 1031 阅读 · 0 评论 -
wikioi1033 蚯蚓的游戏问题
第一次写网络流的拆点问题,本题可以原创 2014-06-09 19:13:39 · 849 阅读 · 0 评论 -
LA6266 Admiral 费用流
直接最大流。。。。由于只用找两条路径,spfa跑两次就可以了。#include #include #include #include #include using namespace std;#define MAXN 310000#define MAXM 310000#define INF 0x3f3f3f3fstruct node{ int u,v,f,c,next;原创 2014-11-25 20:56:43 · 642 阅读 · 0 评论 -
poj 2449 K 短路(不严格)
#include #include #include #define M 100010#define N 1005const int inf = 0x3f3f3f3f;using namespace std;struct E //邻接表建边,to是下个结点,w 是权值 nxt 是下条边的位置{ int to,w,nxt;}edge[2*M];struc原创 2017-03-17 21:53:24 · 517 阅读 · 0 评论 -
poj1330 倍增LCA
#include #include #include #include #include #include using namespace std;#define maxn 11000#define deg 20int fa[maxn][deg],n,num,m,in[maxn<<2],ceng[maxn<<2];int first[maxn<<2],next[maxn<<2]原创 2014-08-26 16:35:17 · 571 阅读 · 0 评论 -
poj3169
简单的差分约束,涨姿势。题意:有n头牛。有ml个关系:每个关系A,B,C表示B距离A不能超过C。有md个关系:每个关系A,B,C表示B距离A至少为C。为牛1和牛n的距离是最大是多少,可能是任意的,也可能是无解的。思路:对于每个关系B-AB,权值为C;对于每个关系B-A>=C,建一条边B->A,权值为-C。用spfa求最短路,若最后求得dis[n]=INF,则距离是任意的,若图中原创 2014-07-17 10:59:19 · 458 阅读 · 0 评论 -
poj2226 Muddy Fields
题目大意:用木板将'*'覆盖,同一行或同一列的'*'可以用一块木板覆盖,'.'不能被覆盖。问最少用多少块木板可以把全部的'*'覆盖?木板只能够覆盖连续的横着的泥巴和竖着的泥巴,中间有草地就要隔开解题思路:二分匹配的经典构图题目构图思路:将横着的木板和看成一边的点的集合,将竖着的木板看成另外一边的点的集合,如果他们相交于一点就连边如果要把所有的泥巴覆盖,又要所需要的木板最少,原创 2014-07-22 11:16:40 · 489 阅读 · 0 评论 -
bzoj2001: [Hnoi2010]City 城市建设 wikioi2332
Contraction(缩必须边): 把待修改的边标-INF,做一遍MST,在MST中的非-INF边为必须边(因为这些边在原图的情况下也一定会被选进MST),缩点。原创 2014-07-10 10:53:53 · 2008 阅读 · 0 评论 -
poj3041Asteroids
按点的x坐标和y坐标构建两个点的集合,原创 2014-07-12 11:32:45 · 452 阅读 · 0 评论 -
poj1128 dfs好题 voj1030
先找出每个矩形的边界,再建立拓扑图。原创 2014-08-22 16:15:11 · 582 阅读 · 0 评论 -
bzoj2330 [SCOI2011]糖果 差分约束
差分约束系统。这道题应该是一道比较裸的差分约束系统。按照题意建图:1、如果A和B一样多 -> 连边(A,B,0),(B,A,0)2、如果A小于B -> 连边(A,B,1)3、如果A大于等于B -> 连边(B,A,0)4、如果A大于B -> 连边(B,A,1)5、如果A小于等于B -> (A,B,0)其中第2种情况和第4种情况要特判原创 2014-07-17 15:06:51 · 1944 阅读 · 0 评论 -
bzoj1015: [JSOI2008]星球大战starwar
逆序建图,把答案存入一个原创 2014-06-13 00:55:46 · 801 阅读 · 0 评论 -
poj2375 强联通分量
用bfs将连着的相同高度的山坡缩为1个点,再原创 2014-08-13 09:30:25 · 621 阅读 · 0 评论 -
最小花费路径 MST+LCA
裸的LCA是无敌的!!!!!!!!!!!!!!!!!!!!![问题描述]对于一个无向图G 中的两点S,T 路径的花费定义为:路径中最大的一条边的边权现在给定一个N 个点M 条边无向图(保证连通,可能有重边及自环),求图中K 个点对的最小花费[输入格式]第一行两个整数,N,M接下来N 行,每行3 个整数Xi,Yi,Vi,表示Xi 与Yi 间有一条边权为Vi 的无向边原创 2014-08-25 16:56:50 · 854 阅读 · 0 评论 -
wikioi2800 送外卖 dp+floyd
用位运算压缩城市状态 floyd求原创 2014-04-30 19:43:15 · 658 阅读 · 0 评论 -
bzoj1036 codevs2460: [ZJOI2008]树的统计 树链剖分
简单树链抛分,竟然总是dfs写错。。。。。不能忍。#include #include #include #include #include #include using namespace std;#define maxn 60000#define ll long long#define lson rt<<1,l,m#define rson rt<<1|1,m+1,r#def原创 2014-09-10 17:28:37 · 664 阅读 · 0 评论 -
bzoj2662: [BeiJing wc2012]冻结 分层图最短路
与2763相似,只是使用加速的时候距离变了一下。原创 2014-07-09 15:23:55 · 1113 阅读 · 0 评论 -
bzoj1050: [HAOI2006]旅行comf MST
并查集的思想。枚举最短边。#include #include #include #include #include using namespace std;int gcd(int x,int y){ if (y>x) return gcd(y,x); if (!y) return x; return gcd(y,x%y);}struct node{原创 2014-07-08 18:48:30 · 669 阅读 · 0 评论 -
bzoj2763: [JLOI2011]飞行路线 分层图最短路
多层图,有点动态规划的思想。原创 2014-07-09 15:05:23 · 860 阅读 · 0 评论 -
bzoj1922: [Sdoi2010]大陆争霸 分层图最短路
最短路问题,d1表示到达()原创 2014-07-04 11:42:40 · 1917 阅读 · 0 评论 -
bzoj1083: [SCOI2005]繁忙的都市 MST
尼玛,真的是裸的最短路。#include #include #include #include #include using namespace std;struct node{ int v,u,val;}edge[20000];int n,e;int father[20000];bool cmp(node aa,node bb){ return aa.va原创 2014-07-08 16:48:38 · 750 阅读 · 0 评论 -
bzoj2753: [SCOI2012]滑雪与时间胶囊 MST
M的数据范围是[1,2000000],神坑1。原创 2014-07-09 22:26:30 · 1300 阅读 · 0 评论
分享