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)

poj 1201

#include #include #include using namespace std; const int MAXN = 50010; const int INF = 100000000; struct Edge { int u, v, w; }edges[MAXN]; int dist[MAXN]; int n, l, r; void Inite() { ...
阅读(472) 评论(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)

hdu 3579 Hello Kiki

题目:点击打开题目 #include #include #include using namespace std; typedef long long LL; const int MAXN = 10; LL Gcd(LL a, LL b) { return b == 0 ? a : Gcd(b, a%b); } void Ex_Gcd(LL a, LL b, LL &d, ...
阅读(469) 评论(0)

hdu 1573 X问题

#include #include #include using namespace std; const int MAXN = 15; typedef long long LL; LL Gcd(LL a, LL b) { if(b == 0) return a; else return Gcd(b, a%b); } void Ex_...
阅读(506) 评论(0)

poj 2115 C Looooops

#include #include #include using namespace std; typedef long long LL; void Ex_Gcd(LL a, LL b, LL &d, LL &x, LL &y) { if(b == 0) { x = 1; y = 0; d = a; ret...
阅读(458) 评论(0)

poj 2891 Strange Way to Express Integers

#include #include #include using namespace std; void Ex_Gcd(long long a, long long b, long long &d, long long &x, long long &y) { if(b == 0) { x = 1; y = 0; d = a;...
阅读(465) 评论(0)

同余问题怎么求解最小正整数解

定理一:若gcd(a, b) = 1,则方程ax ≡ c (mod b)在[0, b-1]上有唯一解。 证明:     存在性:存在整数k和l使a*k + b*l = gcd(a, b) = 1,即我们可以求出ax ≡ 1 (mod b)的解x0。当然,两边乘以c有a(cx0) ≡ c (mod b),所以有x = cx0就是ax ≡ c (mod b)的解。由于加上或减去若干倍b都是该方程的...
阅读(636) 评论(0)
30条 共2页1 2 下一页 尾页
    个人资料
    • 访问:254843次
    • 积分:7044
    • 等级:
    • 排名:第3342名
    • 原创:471篇
    • 转载:19篇
    • 译文:0篇
    • 评论:16条