poj1273 Drainage Ditches

#include #include using namespace std; const int INF = 100000000; const int MAXN = 210; int Graph[MAXN][MAXN]; int dist[MAXN]; int n, m; int MIN(int a, int b) { return a < b ? a : b; } boo...
阅读(388) 评论(0)

有上下界的网络流

#include #include #include using namespace std; const int INF1 = 100000000; const int INF2 = 10000; const int MAXN = 20; struct Arctype { int b, c, f; }; Arctype Edge[MAXN][MAXN]; Arctype Ac...
阅读(457) 评论(0)

poj1149迈克卖猪问题(PIGS)

/** 建图: : 将顾客看作是除源点和汇点的结点,并且另设两个结点,源点和汇点 :源点和每个猪圈的第一位顾客连边,边的权值是开始时猪圈中猪的数量 :若源点和某个结点有重边,则将权值合并(因此,从原点流出的流量就是所有猪圈所能提供猪的数量) :顾客j紧跟顾客i打开某个猪圈,则置的权值为无穷大,因为顾客j紧跟顾客i之后,迈克可以根据顾客j的需求,调来足够多的猪。 :每个顾客都和汇点连接,...
阅读(581) 评论(0)

zoj 1508 Intervals

#include #include #include #include using namespace std; const int INF = 10000000; const int MAXN = 50010; struct ArcNode { int to; int weight; ArcNode* pNext; ArcNode() { to = 0; wei...
阅读(377) 评论(0)

zoj 2770 Burn the Linked Camp

Bellman_Ford实现:点击打开http://blog.csdn.net/hearthougan/article/details/17631941 差分约束系统的SPFA实现:SPFA速度比Bellman_Ford快多了。链表实现,表头不存数据。 #include #include #include #include using namespace std; const in...
阅读(598) 评论(0)

zoj 2770

#include #include #include using namespace std; const int MAXN = 1010; const int MAXM = 23000; const int INF = 100000000; struct Edge { int u, v, w; }edges[MAXM]; int n; int EN; int dist[MA...
阅读(617) 评论(0)

Floyd Test

算法思想:       Floyd(弗洛伊德)算法的基本思想是:对一个顶点个数为n的有向网(或无向网),设置一个n×n的方阵A(k) ,其中除对角线的矩阵元素都等于0外,其他元素A(k)  [i][j] (i≠j)表示从顶点vi到顶点vj的有向路径长度,k表示运算步骤,k = -1, 0, 1, 2, …, n-1。 初始时:A (-1)= Edge(图的邻接矩阵),即初始时,以...
阅读(440) 评论(0)

poj 3259 Wormholes

http://poj.org/problem?id=3259 判断是否存在负权回路,如果存在,则表明某个顶点i入队列的次数超过了n次,n是顶点的数目。 #include #include #include #include #include using namespace std; const int MAXN = 550; const int INF = 10000000; ...
阅读(429) 评论(0)

poj 3268

点击打开题目 #include #include #include #include using namespace std; const int INF = 10000000; const int MAXN = 1010; struct ArcNode//邻接表结构 { int to; int weight; ArcNode* pNext; Ar...
阅读(481) 评论(0)

SPFA

算法思想:    Bellman-Ford算法的时间复杂度比较高,为O(n3)或O(nm),原因在于Bellman-Ford算法要递推n次,每次递推,扫描所有的边,在递推n次的过程中很多判断是多余的。SPFA算法(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余判断。    SPFA算法的大致流程是用一个队列来进...
阅读(461) 评论(0)

poj 1556 The Doors

#include #include #include #include #include using namespace std; const int INF = 100000000; const int MAXN = 100; struct Point { double x; double y; }; struct Edge { int u; i...
阅读(521) 评论(0)

poj 2240 zoj1092 Arbitrage

#include #include #include using namespace std; const int MAXN = 35; const int MAXM = 1000; struct exchange { int ci, cj; double cij; }Ex[MAXM]; char name[MAXN][20], a[20], b[20]; doubl...
阅读(413) 评论(0)

二分图最大匹配之匈牙利算法模板

匈牙利算法的原理为:从当前匹配M(如果没有匹配,则取初始匹配为M=Ø)出发,检查每一个未盖点,然后从它出发寻找可增广路,找到可增广路,则沿着这条可增广路进行扩充,直到不存在可增广路为止。 根据从未盖点出发寻找可增广路搜索的方法,可以分为: 1) DFS增广; 2) BFS增广; 3)  多增广路(Hopcroft-Karp算法)   本文只实现1),2)两种方法   const i...
阅读(687) 评论(0)

Place the Robots zoj 1654

#include #include #define MAX 51 int m, n; //地图的大小m*n,(1<= m, n <=50) char map[MAX][MAX]; //地图 int x[MAX*MAX], y[MAX*MAX]; //x[i]表示与Xi匹配的Y顶点,y[i]表示与Yi匹配的X顶点 int xs[MAX][MAX], ys[MAX][MAX]; //水平...
阅读(383) 评论(0)

多米诺骨牌(欧拉通路,欧拉通路Test)

题目描述:     给定n张骨牌,每张骨牌有左右两个点数(从1到6)。问能不能通过交换骨牌的顺序和交换左右2个点数,使得任意两个相邻骨牌的相邻段为相等的数字。 输入描述:     输入文件中有多个测试数据。每个测试数据的第一行为一个整数N,1≤N≤100,表示多米诺骨牌的总数;接下来N行对每一张牌进行描述:每一行表示一张牌的左右两段的数字(1到6),用空格隔开。 输入文件最后一行为0,...
阅读(973) 评论(0)
32条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:254804次
    • 积分:7043
    • 等级:
    • 排名:第3348名
    • 原创:471篇
    • 转载:19篇
    • 译文:0篇
    • 评论:16条