随笔分类 -  图论

摘要:DFS(Depth First Search), 深度优先搜索.利用递归的思想.其中,什么是递归?递归?参考递归,直到理解递归.那么递归有两个条件1)终止条件2)逐层靠近[1]对于一棵树(或者图)的当前节点,如果其子节点中还有未搜索的点,则继续搜索此点.否则回溯.DFS(x): for v i... 阅读全文
posted @ 2015-08-13 22:59 Mite 阅读(145) 评论(0) 推荐(0)
摘要:1 bool spfa(int s, int t) { 2 queue Q; 3 Q.push(s); 4 rst(d, inf); 5 rst(p, -1); 6 rst(pp, -1); 7 d[s] = 0; 8 vis[s] = tr... 阅读全文
posted @ 2015-04-25 17:13 Mite 阅读(127) 评论(0) 推荐(0)
摘要:1 struct Edge { 2 int v, w, f; 3 int next; 4 }edge[250*250]; 5 int head[550], tot; 6 void addedge(int u, int v, int w) { 7 edge[tot].v = ... 阅读全文
posted @ 2015-04-19 21:52 Mite 阅读(148) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/dark_scope/article/details/8880547bool find(int x){ int i,j; for (j=1;j<=m;j++){ //扫描每个妹子 if (line[x][j]==true &&... 阅读全文
posted @ 2015-04-13 23:39 Mite 阅读(115) 评论(0) 推荐(0)
摘要:1 struct Edge { 2 int v, w; 3 int next; 4 }edge[MAXM]; 5 int head[MAXN], d[MAXN], tot; 6 bool vis[MAXN]; 7 void addedge(int u, int v, int w) ... 阅读全文
posted @ 2015-04-10 21:23 Mite 阅读(160) 评论(0) 推荐(0)
摘要:1 void floyd() {2 for(int k = 0; k < n; k++) {3 for(int i = 0; i < n; i++) {4 for(int j = 0; j < n; j++) {5 d[... 阅读全文
posted @ 2015-04-10 21:18 Mite 阅读(110) 评论(0) 推荐(0)
摘要:1 typedef pair pii; 2 struct Edge { 3 int v, w; 4 int next; 5 }edge[MAXM]; 6 int head[MAXN], d[MAXN], tot; 7 bool vis[MAXN]; 8 void addedge(i... 阅读全文
posted @ 2015-04-10 21:16 Mite 阅读(2033) 评论(5) 推荐(0)
摘要:1 int n; 2 int p[MAXN],r[MAXN],u[MAXN],v[MAXN],w[MAXN]; 3 int cmp(const int i,const int j) { 4 return w[i] < w[j]; 5 } 6 int find(int x) { 7 ... 阅读全文
posted @ 2015-03-26 20:57 Mite 阅读(130) 评论(0) 推荐(0)
摘要:1 int n; 2 int road[MAXN][MAXN]; 3 int dis[MAXN]; 4 bool vis[MAXN]; 5 int prim() { 6 memset(vis, 0, sizeof(vis)); 7 for(int i = 0; i road[id... 阅读全文
posted @ 2015-03-26 20:52 Mite 阅读(139) 评论(0) 推荐(0)
摘要:题意不说 附上链接http://poj.org/problem?id=3026反正先用BFS搜一遍图 记录 S和A之间的路 用一个二维数组存储(注意 把每个S或者A 都搜一遍)好了 剩下的就是赤裸裸的prim了再说"神坑"的地方1.必须用gets,这其实倒不必说2.在输入n和m后 还要用一个gets... 阅读全文
posted @ 2014-05-12 16:41 Mite 阅读(181) 评论(0) 推荐(0)
摘要:生成树——在一个图中的一个联通子图 使得所有的节点都被(访问)最小生成树 (MST) 即联通子图的总代价(路程)最小已知的一个图 有n个点 m条边kruskal的算法如下先对边从小到大排序从最小的边起,不停的合并这条边的两个节点到一个集合,如果这条边的两个节点已经在一个集合里,则无视,否则形成回路(... 阅读全文
posted @ 2014-05-04 21:40 Mite 阅读(201) 评论(0) 推荐(0)
摘要:典型的最小生成树 然后求最大的一条边 附上链接http://cstest.scu.edu.cn/soj/problem.action?id=4339需要注意的是有可能有 "IMPOSSIBLE" 的情况这里用一个flag标记 记录所并的节点 只有flag = n时才能成功 负责就"IMPOSSIBL... 阅读全文
posted @ 2014-05-04 20:38 Mite 阅读(154) 评论(0) 推荐(0)
摘要:第一次写博客最小生成树入门题 附上链接http://cstest.scu.edu.cn/soj/problem.action?id=2198这是一道kruskal的模板题(刘汝佳的小白书——《算法竞赛与入门经典》上有基本一模一样的代码) 1 #include 2 #include 3 #incl... 阅读全文
posted @ 2014-05-04 17:02 Mite 阅读(232) 评论(1) 推荐(0)