algorithm(图论)
文章平均质量分 74
famousDT
掌握C/C
展开
-
SOJ-4074(强联通分量的需要加几条边)
/****************************************************************************************************** ** Copyright (C) 2011.07.01-2013.07.01 ** Author: famousDT ** Edit date: 2011-10-03 ****原创 2011-10-03 15:59:09 · 383 阅读 · 0 评论 -
POJ-1274(最大二分图匹配,将它转换成POJ-1273的最大流)
代码就不贴了,如导论上410页增加一个源点和一个汇点,源点和汇点到其他点得权值都设为1原创 2011-12-22 16:57:59 · 403 阅读 · 0 评论 -
POJ-1273(dinic-最大流,递归实现)
层次图 层次图,就是把原图中的点按照到到源的距离分“层”,只保留不同层之间的边的图。 算法流程 1、根据残量网络计算层次图(BFS)。 2、在层次图中使用DFS进行增广直到不存在增广路。 3、重复以上步骤直到无法增广。 const int INF = 0x7fffffff; const int V = 205; int cap[V ][V ]; int l原创 2011-12-22 16:26:37 · 828 阅读 · 0 评论 -
POJ-2502(需要自己建图的Dijkstra)
居然不知道Dijkstra是个什么玩意儿了,悲催 struct point { int x; int y; } p[505]; double d[505][505]; double distance(int x1, int y1, int x2, int y2) { return sqrt(1.0 * (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2原创 2012-03-15 14:35:40 · 497 阅读 · 0 评论 -
POJ-3259(bellman-ford判断有没有负权路)
算法导论362页,例子 #define EDGE 2505 * 4 #define N 505 * 2 struct EDGE_ { int x, y; int value; } e[EDGE]; int n, edge;//n是顶点数,m是边数 int d[N + 5]; /* 2 5 7 3 1 2 6 1 3 7 2 4 5 2 3 8 3 5 9 5 1 2 5 4原创 2012-03-20 19:58:20 · 2627 阅读 · 0 评论 -
POJ-1797(dijstra变形)(Heavy Transportation)
/*==========================================================*\ | Hugo Heavy要从城市1到城市N运送货物,有M条道路,每条道路都有 | 它的最大载重量,问从城市1到城市N运送最多的重量是多少? \*==========================================================*/ #def原创 2012-05-01 12:32:18 · 482 阅读 · 0 评论 -
POJ-2243(bfs)(Knight Moves )
struct my { int x, y; } wo[100]; int main() { char s[20]; while (gets(s)) { int d[10][10] = {0}; int g[10][10] = {0}; int i, j; for (i = 1; i <= 8; ++i) for (j = 1; j <= 8; ++j) d[i]原创 2012-05-22 12:22:00 · 486 阅读 · 0 评论