POJ 1679
求一次最小成树,求一次小生成树,若相等,则不唯一。否则,唯一。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
const int MAXN=;
const int inf=;
int map[MAXN][MAXN]; int f[MAXN][MAXN];
bool exist[MAXN][MAXN],used[MAXN][MAXN];
int least[MAXN],pre[MAXN]; bool vis[MAXN];
int n,m,ans1,ans2; void prim(){
memset(f,,sizeof(f));
least[]=;
for(int i=;i<=n;i++){
least[i]=map[][i];
if(least[i]!=inf)
pre[i]=;
}
vis[]=true;
for(int i=;i<=n;i++){
int min=inf,p=-;
for(int k=;k<=n;k++){
if(least[k]<min&&!vis[k]){
p=k; min=least[k];
}
} if(p==-) return ;
ans1+=min;
used[pre[p]][p]=used[p][pre[p]]=;
for(int j=;j<=n;j++){
if(vis[j])
f[j][p]=max(f[j][pre[p]],map[pre[p]][p]);
f[p][j]=f[j][p];
}
vis[p]=true;
for(int k=;k<=n;k++){
if(!vis[k]&&map[p][k]<least[k]){
least[k]=map[p][k];
pre[k]=p;
}
}
}
} void secondT(){
ans2=inf;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(exist[i][j]&&!used[i][j]&&ans1 + map[i][j] - f[i][j] < ans2)
ans2=ans1 + map[i][j] - f[i][j];
}
}
} int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
int u,v,d;
ans1=ans2=;
memset(exist,-,sizeof(exist));
for(int i=;i<=n;i++){
for(int j=i;j<=n;j++)
map[i][j]=map[j][i]=inf;
}
for(int i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&d);
map[u][v]=map[v][u]=d;
exist[u][v]=exist[v][u]=;
}
memset(pre,-,sizeof(pre));
memset(used,,sizeof(used));
memset(vis,false,sizeof(vis));
prim();
secondT();
if(ans1==ans2)
printf("Not Unique!\n");
else printf("%d\n",ans1);
}
return ;
}
POJ 1679的更多相关文章
- poj 1679 The Unique MST 【次小生成树】【模板】
题目:poj 1679 The Unique MST 题意:给你一颗树,让你求最小生成树和次小生成树值是否相等. 分析:这个题目关键在于求解次小生成树. 方法是,依次枚举不在最小生成树上的边,然后加入 ...
- poj 1679 The Unique MST
题目连接 http://poj.org/problem?id=1679 The Unique MST Description Given a connected undirected graph, t ...
- poj 1679 http://poj.org/problem?id=1679
http://poj.org/problem?id=1679 The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submis ...
- POJ 1679 The Unique MST (次小生成树)
题目链接:http://poj.org/problem?id=1679 有t组数据,给你n个点,m条边,求是否存在相同权值的最小生成树(次小生成树的权值大小等于最小生成树). 先求出最小生成树的大小, ...
- poj 1679 The Unique MST(唯一的最小生成树)
http://poj.org/problem?id=1679 The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submis ...
- POJ 1679 The Unique MST(判断最小生成树是否唯一)
题目链接: http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its min ...
- (最小生成树 次小生成树)The Unique MST -- POJ -- 1679
链接: http://poj.org/problem?id=1679 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...
- poj 1679 The Unique MST (判定最小生成树是否唯一)
题目链接:http://poj.org/problem?id=1679 The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total S ...
- poj 1679 The Unique MST 【次小生成树+100的小数据量】
题目地址:http://poj.org/problem?id=1679 2 3 3 1 2 1 2 3 2 3 1 3 4 4 1 2 2 2 3 2 3 4 2 4 1 2 Sample Outpu ...
- POJ 1679 The Unique MST:次小生成树【倍增】
题目链接:http://poj.org/problem?id=1679 题意: 给你一个图,问你这个图的最小生成树是否唯一. 题解: 求这个图的最小生成树和次小生成树.如果相等,则说明不唯一. 次小生 ...
随机推荐
- MySQL:常见错误01
ylbtech-MySQL:常见错误01 1.返回顶部 1. [SQL]select * from product_product_tag aLEFT JOIN system_tag b on b.i ...
- EditPlus 1:更改默认编码方式
打开软件点击上面的菜单栏Tools(工具),再找到Configure User Tools(用户配置工具)点击,再找到左边栏File点击,这个时候可以看到右边栏的Default encoding点击可 ...
- HttpServletResponse对象,自己学习的心得
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应response对象. request和response对象既然代表请求和响应,那我们要 ...
- windows phone传感器
Windows phone中的传感器主要包括加速计传感器.罗盘传感器.陀螺仪传感器等 加速计传感器 Accelerometer类是加速传感器的接口,Accelerometer类位于Windows.De ...
- java线程中断2
一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果. 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了.那么不 ...
- bootstrap 图片 图标
一.图片 1.响应式图片:<img src=" " class="responsive"> 2.圆角图片:<img src=" ...
- 启动MyEclipse 出现java.lang.RuntimeException: No application id has been found 解决办法
咋一看,太熟悉了,就去eclipse\links 目录下,发现指定的MyEclipse的路径不对. 突然想起来了,MyEclipse是换地了. MyEclipse里面内置的eclipse找不到MyEc ...
- 【PostgreSQL-9.6.3】psql常用命令
命令 描述 \l 查看数据库 \c 换库 \d 查看所有表 \dt 只显示匹配的表 \di 只显示匹配的索引 \ds 只显示匹配的序列 \dv 只显示匹配的视图 \df 只显示匹配的函数 \d t1 ...
- Boost-QT兼容问题:#define FUSION_HASH #
使用原始的MSVC10+QT48很长时间,需要把PCL升级到新的版本,不再使用自行编译的PCL1.7.2版本. 在使用MSVC2012的时候,使用MSVC12-的PCL1.8.0版本,出现了一个不大不 ...
- ubuntu操作系统的目录结构
/:根目录,是所有目录的绝对路径的起始点.一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中 /bin (类似的还有/usr/bin) ...