2012年5月23日
摘要: POJ_3522 这个题目我们可以枚举每条边作为生成树中权值最小的边,然后做最小生成树,不过我们这样去写,不知道会不会超时。 也可以在做kruscal的时候,如果加上当前边会构成环,那么就将这个环上权值最小的边删掉。同时如果当前已经形成了最小生成树,就遍历一遍生成树,找到边权的最大值和最小值更新一下结果。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXD 110#define MAXM 10010#define INF 0x3f3f3f3fusing namespace std 阅读全文
posted @ 2012-05-23 15:44 Staginner 阅读(188) 评论(0) 推荐(0) 编辑
摘要: POJ_1679 这个题目可以先用prim求一棵最小生成树,然后顺便更新出书上两点间的最大边权。 之后枚举每一条边,如果这条边没有在生成树上,且生成树上这两点间的最大边权与之相等,那么就说明这条边也可以作为最小生成树边,因此最小生成树就不唯一了。#include<stdio.h>#include<string.h>#define MAXD 110#define MAXM 100010#define INF 0x3f3f3f3fint N, M, first[MAXD], e, next[MAXM], v[MAXM], dis[MAXD], pre[MAXD], vis[ 阅读全文
posted @ 2012-05-23 13:51 Staginner 阅读(162) 评论(0) 推荐(0) 编辑