图
MissAnnLucky
Cease to struggle cease to live.
展开
-
uva 572 Oil Deposits
完全模仿《算法竞赛入门经典》,宽度优先遍历。。。神奇的递归。。。还有8方向遍历的方法。模版#include#includeusing namespace std;char map[110][110];int vis[110][110];void dfs(int i,int j){ if(map[i][j]=='*'||vis[i][j]==1) return ;原创 2013-04-23 20:19:53 · 472 阅读 · 0 评论 -
UVA 10801 - Lift Hopping Dijkstra 算法
d[i][j]表示从i电梯到j层所用的最短时间。#include#include#include#include#include#include#include#define time tttusing namespace std;typedef struct node{ int order,floor; node(int a=0,int b原创 2013-11-06 21:44:13 · 694 阅读 · 0 评论 -
Havel-Hakimi定理(判断一个序列是否可图) UVA 10720
http://www.docin.com/p-540438846.html原创 2013-10-31 19:21:08 · 558 阅读 · 0 评论 -
UVA 10369 最小生成树
最小生成树的模板题,注意保存S个用到的最大的边长。#include#include#include#include#include#includeusing namespace std;int x[505],y[505];typedef struct node{ int x,y; double dis; bool operator <(const原创 2013-10-23 20:46:48 · 585 阅读 · 0 评论 -
UVA 567 Floyd算法
又是个模版题,把两点之间的距离看作是1。#include#include#include#include#define INF 10000using namespace std;int d[23][23];int main(){// freopen("in.txt","r",stdin); int a,b,cas=0; while(scanf("%d原创 2013-10-23 20:00:39 · 624 阅读 · 0 评论 -
UVA 10608 dfs或者并查集
题意:A和B是朋友,B和C是朋友,那么A和C是朋友,输入一些朋友关系,输出最大人数的朋友圈。1.直接深搜一遍#include#include#include#define MAXN 30000+10using namespace std;bool vis[MAXN];vectorst[MAXN];int n,m,ans,maxx;void dfs(int cur){原创 2013-10-22 21:02:50 · 626 阅读 · 0 评论 -
UVA 558 判断负环
#include#include#include#define MAXN 2000+5#define INF 1000000using namespace std;int u[MAXN],v[MAXN],w[MAXN],n,m,d[1005];int main(){// freopen("in.txt","r",stdin); int cas; scanf(原创 2013-10-14 20:37:51 · 594 阅读 · 0 评论 -
UVA 10099 Kruskal算法 Floyd算法
Floyd:#include#include#include#define MAXN 105#define INF 10000using namespace std;int d[MAXN][MAXN];int main(){// freopen("in.txt","r",stdin); int n,r,cas=0; while(scanf("%d%d原创 2013-10-14 20:28:06 · 678 阅读 · 0 评论 -
Bellman-Ford算法 和 SPFA算法
从百度以及大牛们的博客中找到的,仅供学习参考。。。。 Bellman-ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写。即进行不停地松弛(relaxation),每次松弛把每条边都更新一下,若n-1次松弛后还能更新,则说明图中有负环(即负权回路,本文最后有解释),无法得出结果,否则就成功完成。Bellman-ford算法有一个小优化:每次松弛先设转载 2013-10-13 17:26:53 · 906 阅读 · 0 评论 -
HDU 3849 无向图的割顶和桥模版题
原理在lrj训练指南P312,模板!不连通图的割边是0!!所以这个题要先判断是否是连通的。另外因为要求是按照输入顺序输出,所以不得不说保存数据很麻烦。#include#include#include#include#include#include#include#includeusing namespace std;typedef pair Pair;int n,m,tot转载 2013-08-29 17:17:33 · 762 阅读 · 0 评论 -
HDU1102 Constructing Roads 最小生成树
基本算是最小生成树的模板题,对于已经建好的路,把它的长度标记为0就可以了。这个题比较坑的地方是输入是有多组数据的,还有数组越界有可能返回的是WA,注意数组的大小。如果全部存下,应该是n*n+n*(n+1)/2.#include#include#include#include#include#define MAXN 105using namespace std;int p[MAX原创 2013-08-13 20:52:09 · 458 阅读 · 0 评论 -
URAL 1117. Hierarchy 数学 找规律 二叉树
十分佩服DC学长,问他递推公式怎么得到的,他说他在纸上一划拉就划拉出来了,好吧。。。。。不过在他的指点下,我又仔细想了想,终于把这道题悟出来了。1.一次递推出1——2,1——4,……1——2^k所需的步骤,这个可以找规律的。 k=1时,即1——2, 步数:0 k=2时, 1——4, 1 k=3时,原创 2013-08-04 13:15:34 · 783 阅读 · 0 评论 -
图的割点、桥与双连通分支
转载于https://www.byvoid.com/blog/biconnect[点连通度与边连通度]在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边转载 2013-08-02 16:37:38 · 513 阅读 · 0 评论 -
uva 439 Knight Moves
这是一个关于图的问题。题意是根据中国象棋马的走法决定的,具体的看dx和dy两个数组。 dia[x][y]表示从一个已知点到(x,y)要走的步数,把格子从上到下编号0,1,2,3,,,,,,、m*m,所以U表示格子独一无二的编号。而x=u/m;y=u%m;数组q相当于一个队列,后面进,前面出。#include#include#includeusing namespace st原创 2013-04-28 17:15:41 · 602 阅读 · 0 评论