图论******************
文章平均质量分 74
「已注销」
我的目标 离我还有多远我的梦想 有点遥不可及我要用十倍苦心做最突出一个我不能退缩 不管路多艰难 我都要努力我要靠自己的双手去做自己喜欢做的事我要靠自己的努力去我想去的地方旅游我还年轻 我还可以去奋斗
展开
-
Arbitrage
点击打开链接题意:货币兑换,换取最大钱币;解析:构图,spfa#include#include#include#include#includeusing namespace std;const int maxn = 1005;double cost[ maxn ][ maxn ], dis[ maxn ];int vis[ maxn ];int n, m;c原创 2014-07-14 14:58:36 · 898 阅读 · 0 评论 -
Drainage Ditches
点击打开链接题意:有一个池塘因为下雨,通过修通渠道来排水,怎么排的水最多?解析:经典最大流,通过改变容量,来减少流量的使用,实现了空间优化#include#include#include#include#includeusing namespace std;const int maxn = 1005;#define INF 0xfffffffint n, m, u原创 2014-07-15 19:20:22 · 870 阅读 · 0 评论 -
Courses
二分匹配,匈牙利算法// File Name: 1186.cpp// Author: bo_jwolf// Created Time: 2014年02月06日 星期四 23时09分26秒#include#include#include#include#include#include#include#include#include#include#include#i原创 2014-02-06 23:27:34 · 1076 阅读 · 0 评论 -
hdu1869-六度分离
http://acm.hdu.edu.cn/showproblem.php?pid=1869floyd#include#include#include#include#include#includeusing namespace std;#define MAX 205int edge[ MAX ][ MAX ] ;int main(){ int n, m ,原创 2013-07-16 19:39:30 · 1020 阅读 · 0 评论 -
hdu1162-Eddy's picture
http://acm.hdu.edu.cn/showproblem.php?pid=1162#include#include#include#include#includeusing namespace std; #define MAX 5050int fa[ MAX ] ;struct node{ int x , y ; double value ; bool原创 2013-06-06 10:39:48 · 919 阅读 · 0 评论 -
hdu1162-Eddy's picture
http://acm.hdu.edu.cn/showproblem.php?pid=1162#include#include#include#include#includeusing namespace std; #define MAX 5050int fa[ MAX ] ;struct node{ int x , y ; double value ; bool o原创 2013-06-06 10:38:14 · 793 阅读 · 0 评论 -
【专辑】图论复习
http://blog.csdn.net/tclh123/article/details/6407352updating ... 05.09...08.08...10.28... 存图方法。零、连通性 无向图割点、桥 有向图强连通SCC一、最短路Dijkstra +heapB原创 2013-05-29 21:07:04 · 916 阅读 · 0 评论 -
zoj1092-Arbitrage
这道题目虽然是理解了书上的代码,然后自己敲出来的,但是仍然收获不少,例如其中处理字符串时保留它的数字,然后来进行判断,条理比较清晰,也初略了解了bellman-ford算法,虽然和Dijkstra的思想完全理解透,还需要努力#include#include#include#includeusing namespace std ;const int maxn = 50 ;cons原创 2013-05-15 19:51:41 · 1172 阅读 · 0 评论 -
zoj1665-Transport Goods
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=655代码不是很长,但是却写了很久,将Dijkstra进行活学活用,不能只是简单的套模版,而且需要注意的就是需要使用double型的数据,如果使用float型,可能会WA;题意:先输入有n ,m,表示存在几组数据,然后输入n-1行,代表需要运输的质量,紧接着输入m行 x原创 2013-05-14 21:32:56 · 1032 阅读 · 0 评论 -
图论知识点列表
基本图算法图广度优先遍历深度优先遍历拓扑排序割边割点强连通分量Tarjan算法双连通分量强连通分支及其缩点图的割边和割点最小割模型、网络流规约2-SAT问题欧拉回路哈密顿回路最小生成树Prim算法Kruskal算法(稀疏图)Sollin算法次小生成树第k小生成树最优比例生成树最小树形图最小度限制生成树平面点的欧原创 2013-05-07 11:59:55 · 1091 阅读 · 0 评论 -
zoj2412-Farm Irrigation
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1412第一次知道bfs可以用的这么活,本来打算直接用3*3数组将每一种情况构建新表,但是将表都建好后发现了一个很麻烦的问题,就是单独输出3*3的图是对的,但是构建成多种情况的图的时候,相邻的两个字母的情况无法连接起来(因为图中间有一条边是公用的 #include #i原创 2013-05-13 19:23:25 · 1256 阅读 · 0 评论 -
zoj2750-Idiomatic Phrases Game
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1750#include#include#define MAXN 1000#define INF 1000000000struct idiom{ char front[ 5 ] ,back [ 5 ] ; int T ;};idiom dic[ MAXN ]原创 2013-05-13 21:00:35 · 946 阅读 · 0 评论 -
POJ 图论
POJ 2449 Remmarguts' Date(中等) AChttp://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144原创 2013-05-09 22:17:42 · 5597 阅读 · 1 评论 -
hdu4463-Outlets
http://acm.hdu.edu.cn/showproblem.php?pid=4463// File Name: hdu4463.cpp// Author: bo_jwolf// Created Time: Thursday, May 09, 2013 PM01:06:34 HKT#include#include#include#include#include#原创 2013-05-09 14:11:00 · 1087 阅读 · 0 评论 -
昂贵的聘礼
点击打开链接题意:略解析:枚举等级,Dijkstra#include#include#includeusing namespace std;const int maxn = 1005;#define INF 0xfffffffint mapp[ maxn ][ maxn ], num[ maxn ][ maxn ], vis[ maxn ], dis[ maxn原创 2014-07-16 16:05:36 · 1060 阅读 · 0 评论 -
Task Schedule
点击打开链接题意:某个工厂有M台机器,需要完成N项任务。给出每项任务的完成时间PI,开始时间SI,结束时间EI;现在问你能否在刚好完成(一次);解析:以时间为单元构图,即将完成某一任务 I ,所需要时间PI,拆分成PI个单元1.然后设置源点s( 0 )和终点t( n + maxday + 1 ).那么从源点到完成第i个任务则其权值为完成当前任务所需要的时间PI。然后从当前任务 i 与其完成原创 2014-07-17 16:48:56 · 1072 阅读 · 0 评论 -
Asteroids
点击打开链接题意:某人想实现太空旅行,可以通过空洞实现,而它们的连通方式就是一张n * n的矩阵;现在有一种武器,可以一次性消灭它的一行或者一列(意思就是相当于留下一条可行路)。解析:利用匈牙利算法实现,二分图匹配#include#include#include>using namespace std;const int maxn = 1005;int mapp[ max原创 2014-07-15 09:56:17 · 898 阅读 · 0 评论 -
最短路径问题
点击打开链接类似A strange lift的写法,之前一直返回RE,感觉有点不科学,数据较小。后来看discuss,居然输入还要考虑去重。题意:略;解析:最短路问题,但是有两种情况,因此需要根据具体情况来考虑。我采用的是构造两张图,然后在使用Dijkstra中将dis与cost放在一个结构体中,便于理解。其它就是A strange lift的一点变形#include#inc原创 2014-07-13 18:22:34 · 764 阅读 · 0 评论 -
二分图的最大匹配 (匈牙利算法)
zhu1、二分图、最大匹配什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 什么是匹配:把上图想象成3男4女搞对象(无同性恋),连线代表彼此有好感,但最终只能转载 2014-07-15 09:49:42 · 614 阅读 · 0 评论 -
一个人的旅行
点击打开链接题意:有n条村落连接线路,给你m个草儿附近的村落,在给出t个草儿想去的地方。从草儿附近的村落出发到她想去的地方所有线路中的花费时间最少的一个。解析:多源多点最短路,暴力枚举#include#include#includeusing namespace std;const int maxn = 1005;const int Max = 0xfffffff;i原创 2014-07-13 19:59:51 · 821 阅读 · 0 评论 -
移动
点击打开链接bfs,手贱,vis标记,将y1写成x2,各种改bug#include#include#include#include#includeusing namespace std;const int maxn = 305;int vis[ maxn ][ maxn ];int x1, y1, x2, y2;struct node{ int x, y, step原创 2014-07-12 16:57:51 · 722 阅读 · 0 评论 -
Pet
点击打开链接bfs,需要自己构图#include#include#include#include#includeusing namespace std;const int maxn = 100005;int dep[ maxn ];int vis[ maxn ];int pre[ maxn ];vectormapp[ maxn ];void Bfs( int原创 2014-07-12 13:23:45 · 820 阅读 · 0 评论 -
A strange lift
点击打开链接题意:有n层楼层,现在在每一层有两个按钮,分别为up和down,按动按钮时,可以向上或向下跳动num[ i ]层;问能否以最少的次数从A到B层,不能输出-1;解析:构图,将从i层到按动按钮后跳转的楼层,看作连通状态,赋值为1,这样就转换成单源最短路问题;#include#include#includeusing namespace std;const int m原创 2014-07-13 16:33:26 · 1131 阅读 · 0 评论 -
Girls and Boys
点击打开链接二分图匹配,hopcroft-karp#include#include#include#includeusing namespace std;const int MAXN = 5010;const int MAXM = 50010;struct Edge{ int to, next;}edge[ MAXM ];int head[ MAXN ], to原创 2014-07-26 19:53:59 · 1180 阅读 · 0 评论 -
Tour
点击打开链接题意:在一个王国有N个城市,M条路。选择N条路,构成一个环路。求出最小距离。解析:构图,最小费用最大流。将源点和终点至个点花费记作0,然后将所有路径流量记作1或同一值。#include#include#include#includeusing namespace std;const int maxn = 10000;const int maxm = 100原创 2014-07-21 19:06:15 · 1192 阅读 · 0 评论 -
A new Graph Game
点击打开链接题意:给你一张N个节点的无向图,然后给出M条边,给出第 I 条边到第J条边的距离。然后问你是否存在子环,如果存在,则输出最成环的最短距离和解析:构图:选定源点及汇点,然后将源点至个点流量置为1,花费置为0.然后使用最小费用流,当返回值流量和,即flow 其余和tour一样求法,处理一下某两点距离为最短距离即可。#include#include#include#原创 2014-07-21 21:51:09 · 1379 阅读 · 0 评论 -
Going Home
点击打开链接题意:在一张N * M 的图中,有 n个房子和n个人。问最少使用多少总步数让每个房子都有且仅有一个人.解析:构图。选取源点和汇点,从源点到人连通,费用为0(因为题目要求的是人到房子的费用)。以第i个人与第j所房子的距离作为当前费用进行构图,由于题目并不需要求出最大流( 也没给出来),因此所有连通路径的流量设置为一个相同的权值即可。然后使用费用流求出最小费用。#inclu原创 2014-07-21 12:27:19 · 1439 阅读 · 0 评论 -
Pleasant sheep and big big wolf
点击打开链接题目:在一个N * M 的矩阵草原上,分布着羊和狼,每个格子只能存在0或1只动物。现在要用栅栏将所有的狼和羊分开,问怎么放,栅栏数放的最少,求出个数?解析:将狼群看作一个集合,羊群看作一个集合。然后设置源点和汇点,将两点至存在动物的点的距离赋值为1,构图,由于求得是栅栏数,从存在动物的位置向四周发散点赋值为1,即该方向放置一个栅栏。然后可以发现变成了求最小割,即求出最大流。原创 2014-07-18 12:42:20 · 1226 阅读 · 0 评论 -
最短路之Dijkstra
最短路径之单源Dijkstra算法例子,包括记录路径的操作// File Name: dijkstra_jilulujin.cpp// Author: bo_jwolf// Created Time: Thursday, May 09, 2013 PM07:56:22 HKT#include#include#include#include#include#in原创 2013-05-09 20:13:07 · 937 阅读 · 0 评论 -
E - Networking
E - Networking#include#includeusing namespace std;const int maxn=2000;struct node{ int x,y,value; int flag;}edge[maxn];int fa[maxn];int find(int x){ return x==fa[x]?x:find(fa[x]);}b原创 2013-04-19 14:04:20 · 857 阅读 · 0 评论 -
hdu1875-畅通工程再续
http://acm.hdu.edu.cn/showproblem.php?pid=1875这是我做过最恶心的最小生成树的题目 ,本来看有一段时间没做这个l类型的题目了,拿个题目练练手,结果。。。一整个晚上就卡这个该死的题目上面,我就想不通为什么sort会wa,但是qsort却AC了#include#include#include#include#include#include原创 2013-05-16 21:44:54 · 958 阅读 · 0 评论 -
hdu2066-一个人的旅行
http://acm.hdu.edu.cn/showproblem.php?pid=2066读懂题意就不是难题题意:给你 m , n , t ; M代表给你的组数,然后输入X, Y TEMP,分别代表从X到Y所需要花费的时间TEMP,本题没有给出构图中的矩阵大小,所以需要自己找到最大的边数;n代表相邻的城镇,可以理解为n个起点;t 代表有几个喜欢的地方,可以理解为终点;这里的意思原创 2013-05-15 22:34:47 · 862 阅读 · 0 评论 -
hdu1546-Idiomatic Phrases Gamehttp
http://acm.hdu.edu.cn/showproblem.php?pid=1546Dijkstra求解最短路,但是题意中规定当某一字符串的首尾字符相同时才能连接,但是使用如下的方法,这个条件就被忽略了(暗含已经判断了);题意大致为给定一个整数 和一串字符串,当字符串末端的四个字符与另一字符串的首端四个字符相同时,加上前面的字符串,然后找出连接状态的最小值,而且每一个符合条件的字原创 2013-05-16 14:48:03 · 1032 阅读 · 0 评论 -
hdu2544-最短路
http://acm.hdu.edu.cn/showproblem.php?pid=2544Dijkstra模版题,Dijkstra模版终于初步确定了#include#include#include#includeusing namespace std ;const int INF = 1000000 ;const int maxn = 105 ;int edge原创 2013-05-15 21:54:25 · 872 阅读 · 0 评论 -
hdu1595-find the longest of the shortest
http://acm.hdu.edu.cn/showproblem.php?pid=1595求最短路中间的最长路径题意为求最短路,但是要求的是最短路中间当去掉某一条路时的情况下路径最长的,这里是使用Dijkstra写的,代码相较其他简便了很多,值得注意的是当记录路径时,当传入的v0为0 时不要记录#include#include#includeconst int INF = 10原创 2013-05-16 13:30:55 · 860 阅读 · 0 评论 -
图论最短路之bellman-ford
#include#include#includeusing namespace std ;const int INF = 1000000 ;const int maxn = 8 ; int n ;int edge[ maxn ][ maxn ] ;int dist[ maxn ] ;int path[ maxn ] ;void bellman( int v0 ){ int原创 2013-05-15 14:43:38 · 1264 阅读 · 0 评论 -
图论最短路之spfa
#include#include#include#includeusing namespace std ;const int INF = 1000000 ;const int maxn = 10 ;struct ArcNode{ int to ; int weight ; ArcNode *next ;};queue Q ;int n ;ArcNode *List[原创 2013-05-15 15:11:02 · 1276 阅读 · 0 评论 -
hdu1142-A Walk Through the Forest
http://acm.hdu.edu.cn/showproblem.php?pid=1142Dijkstra + Dfs搜索进行优化;题意为:找出比1->2要小的路径个数#include#include#include#includeconst int maxn = 1005 ;const int INF = 1000000000 ;int edge[ maxn原创 2013-05-15 21:24:58 · 965 阅读 · 0 评论 -
Arctic Network
I -Arctic NetworkArctic Network这一题也TM恶心,fa初始化到最大值居然都RE// File Name: i.cpp// Author: rudolf// Created Time: 2013年04月21日 星期日 17时29分55秒#include#include#include#include#include#in原创 2013-04-21 18:10:41 · 962 阅读 · 0 评论 -
畅通工程续
畅通工程续第一个Dijkstra,呵呵,纪念下// File Name: hdu1874.cpp// Author: rudolf// Created Time: 2013年04月27日 星期六 16时06分12秒#include#include#include#include#include#include#include#include#include#i原创 2013-04-27 17:05:38 · 957 阅读 · 0 评论