图论
@阿奇@
做一个勤勉、有趣、善良的人
展开
-
uva10000
#include<iostream>#include <string.h>using namespace std;//弗洛伊德算法可以算最大路径,dj算法就不行……BFS好像也不行?int dis[105][105];int main(){ int n; int t =0; while(cin>>n,n) { int s; in原创 2017-10-28 15:33:07 · 217 阅读 · 0 评论 -
uva10048
#include <iostream>#include <math.h>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;int u[1100];int v[1100];int w[1100];int p[110];int r[1100];int n,m,q,b,end_;原创 2017-11-14 16:32:23 · 102 阅读 · 0 评论 -
uva10092
这题有多个解……#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<cmath>#include<algorithm>using namespace std;const int N=1100;int line[N][N];int nx[N];int原创 2017-11-15 13:47:11 · 353 阅读 · 0 评论 -
uva10080
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<cmath>#include<algorithm>using namespace std;const int N=110;int line[N][N];int girl[N],used[N];int原创 2017-11-15 13:48:05 · 238 阅读 · 0 评论 -
二分图匹配
入门 KM KM讲解二,以下有代码分析#include<bits/stdc++.h>using namespace std;const int maxn = 305;const int INF = 0x3f3f3f3f;int n, nx, ny;//nx,ny分别为x点集y点集的个数int match[maxn], lx[maxn], ly[maxn], slack[maxn];原创 2017-11-14 16:54:31 · 102 阅读 · 0 评论 -
uva670
#include<cstdio>#include<cstring>#include<iostream>#include <math.h>using namespace std;const int N=110;int line[N][N];int rount[200][2];//数组开小了,rount[110][2]会越界,但不会停止运行,直接跑出for循环了,笑哭,找了好久int g原创 2017-11-17 09:40:52 · 159 阅读 · 0 评论 -
LCA(最近公共祖先)
tarjan转载 2017-12-02 21:40:47 · 339 阅读 · 0 评论 -
poj1330
# include <iostream># include <cstdio># include <cstring># include <string># include <cmath># include <vector># include <map># include <queue># include <cstdlib># define MAXN 500001using name原创 2017-12-03 17:00:21 · 146 阅读 · 0 评论 -
zoj2838 &&倍增法
#include <iostream>#include <stdio.h>#include <algorithm>#include <vector>#include <string.h>using namespace std;const int n=50002;vector<int> g[n];//表示图(树)int nn;int p[n][20];//表示向上翻2^i代的祖先节点原创 2017-12-04 22:57:09 · 205 阅读 · 0 评论 -
zoj 3664
//暴力lca:这个题,从头找,最后一个符合条件的点就是最近祖先点//每次画一条线,一个矩形变成2个,这不就是二叉树嘛?#include <stdio.h>#include <iostream>#include <string.h>using namespace std;const int N=3000;struct pot{ int x,y; pot(int a,in原创 2017-12-06 11:17:59 · 152 阅读 · 0 评论 -
数据结构总结之最短路径
1.弗洛伊德算法模板题:uva10000#include<iostream>#include <string.h>using namespace std;int dis[105][105];int main(){ int n;int t =0; while(cin>>n,n) { int a,b,s; memset(dis,-1,si原创 2017-12-18 22:45:48 · 517 阅读 · 0 评论 -
uva10397
#include <iostream>#include <math.h>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;struct Node{ double x,y;};Node node[800];int u[800*800];int v[800*800];d原创 2017-11-14 16:28:54 · 155 阅读 · 0 评论 -
uva10034
#include <iostream>#include <math.h>#include <algorithm>#include <stdio.h>#include <string.h>using namespace std;struct Node{ double x,y;};Node node[110];int u[110*110];int v[110*110];d原创 2017-11-13 20:49:21 · 155 阅读 · 0 评论 -
uva10099
#include <iostream>#include <string.h>#include <algorithm>using namespace std;int par[110][110];int trip_num[110];int vis[110];int n,r;int s,e,num;int x,y;int ans;void init(){ memset(pa原创 2017-10-28 17:16:47 · 183 阅读 · 0 评论 -
uva534
#include <iostream>#include <string.h>#include <algorithm>#include <math.h>#include <iomanip>using namespace std;double par[220][220];double dis[220];int vis[220];int n;double ans;class node原创 2017-10-28 22:33:43 · 174 阅读 · 0 评论 -
最短路径&&Dijkstra&&Floyd
很详细的讲解转载 2017-10-28 10:27:10 · 130 阅读 · 0 评论 -
uva117
#include <iostream>#include <string.h>using namespace std;int dis[30];int vis[30];int par[30][30];int deg[30];int ans;int start,e;void dj(){ memset(dis,0,sizeof(dis)); memset(vis,0,si原创 2017-10-28 23:49:11 · 226 阅读 · 0 评论 -
uva315
#include <iostream>#include <vector>#include <stdio.h>#include <string.h>using namespace std;//放在vector之前int n;//节点数int count;//dfs为dfn编号的计数器int ans;int dfn[110];//遍历的顺序,也就是遍历的编号int low[110];/原创 2017-10-21 19:48:50 · 229 阅读 · 0 评论 -
割点
割点转载 2017-10-22 12:55:37 · 177 阅读 · 0 评论 -
uva10596
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int deg[230];//每个点的度,根据欧拉定理连通图的每个点度都为偶数时,可以遍历每个桥一次int n,m;int a,b;//连接的两个点bool d;bool un_link;//d代表是否有度为奇数的点,un_link代表原创 2017-10-22 19:19:57 · 263 阅读 · 0 评论 -
uva104
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int n;double dp[25][25][25];//dp[i][j][p]记录i到j且遍历的国家数为p的乘积int path[25][25][25];//path[i][j][p]记录i到j的第p个遍历的国家void print原创 2017-11-01 14:20:00 · 213 阅读 · 0 评论 -
最小生成树
原理但是kruskal的源码需要修改下……代码给的不好 kruskal:#include <stdio.h>#include <stdlib.h>#include <algorithm>#define N 150using namespace std;int m,n,u[N],v[N],w[N],p[N],r[N];//r是边的编号//p是点的祖先点(便于判断是否在同一连通图)in原创 2017-11-13 12:40:41 · 161 阅读 · 0 评论 -
uva11045
#include<stdio.h>#include<cstring>#include<iostream>using namespace std;const int N=505;int line[N][N];int girl[N],used[N],nx[N];int k,m,n;bool found(int x){ for(int i=1; i<=n; i++) {原创 2017-11-17 14:15:21 · 175 阅读 · 0 评论 -
uva544
#include <iostream>#include <stdio.h>#include <string.h>#include <string>#include <map>#include <algorithm>using namespace std;int m,n,t;int e,b;int map_ [210][210];bool vis[210];int dis[210原创 2017-11-13 15:13:26 · 153 阅读 · 0 评论 -
hdu2586
# include <iostream># include <cstdio># include <cstring># include <string># include <cmath># include <vector># include <map># include <queue># include <cstdlib># define MAXN 40001using names原创 2017-12-04 14:18:53 · 113 阅读 · 0 评论