摘要: 并查集显然要用到左偏树解决合并的问题这题体现了数据结构的强大啊!#include<stdio.h>#include <algorithm>using namespace std;const int MAXN = 100100;int father[MAXN];struct Monkey{ int l,r; int dis; int strong;}LTree[MAXN];int find(int x){ if(x != father[x]) father[x] = find(father[x]); return father[x];}int merge(int x,in 阅读全文
posted @ 2011-05-01 09:17 L.. 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 参考 算法导论 p580 单终点最短路径问题这两题是一样的求法,先正着求一次最短路,再将边反向,再求一次矩阵表示图的话就是将矩阵转置一次,邻接表表示的话就是读入边的时候,建两个表poj3268dijkstra求最短路#include <iostream>#include <string.h>using namespace std;const int MAXN =1001;int n,m,x;const int INF = 0x7FFF;int G[MAXN][MAXN];int dist1[MAXN];int sum[MAXN];bool used[MAXN];void 阅读全文
posted @ 2011-05-01 01:30 L.. 阅读(209) 评论(0) 推荐(0) 编辑