poj 1679 Prim判断次短路
题意:判断最短路是否唯一。
思路:先prrim一次求出最短路同时记录最短路加入的边;
然后枚举所求边,将其删除再求n-1次prim,判断再次所求得的最短路与第一次求得的次短路的关系。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 5050
#define inf 100000000
using namespace std; struct Edge{
int u,v,w;
}edge[MAXN]; int n,m,mst;
int map[MAXN][MAXN],dis[MAXN],fit[MAXN];
bool unique; void prim()
{
int i,j,now,minn,mine;
int num;int k=0;
unique=true;
for( i=0;i<=n;i++)
{
dis[i]=inf;
}
mst=0;
now=1;
for( i=1;i<n;i++)
{
dis[now]=-1;
mine=inf;
for( j=1;j<=n;j++)
{
if(j!=now&&dis[j]>=0)
{
if(map[now][j]<dis[j])
{
dis[j]=map[now][j];
fit[j]=now;
}
if(dis[j]<mine)
{
mine=dis[j];
minn=j;
}
}
}
if(mine==inf)
{
mst=0;
return ;
}
edge[k].u=minn;
edge[k].v=fit[minn];
edge[k].w=map[minn][fit[minn]];
k++;
now=minn;
mst+=mine;
}
num=k;
for(k=0;k<num;k++)
{
map[edge[k].u][edge[k].v]=inf;
map[edge[k].v][edge[k].u]=inf;
if(i!=0)
{
map[edge[k-1].u][edge[k-1].v] = edge[k-1].w;
map[edge[k-1].v][edge[k-1].u] = edge[k-1].w;
}
for(i = 1; i <= n; i ++)
dis[i] = inf; int mst2=0;
bool flag=true;
now=1;
for(i=1;i<n;i++)
{
dis[now]=-1;
mine=inf;
for(j=1;j<=n;j++)
{
if(j!=now&&dis[j]>=0)
{
if(map[now][j]<dis[j])
{
dis[j]=map[now][j];
}
if(dis[j]<mine)
{
mine=dis[j];
minn=j;
}
}
}
if(mine==inf)
{
flag=false;
break;
}
now=minn;
mst2+=mine;
}
if(flag&&mst2==mst)
{
unique=false;
return ;
}
} } int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
map[i][j]=inf;
}
}
for(int i=0;i<m;i++)
{
int v,w,c;
scanf("%d%d%d",&v,&w,&c);
map[v][w]=c;
map[w][v]=c;
}
prim();
if(!unique)printf("Not Unique!\n");
else printf("%d\n",mst);
}
return 0;
}
poj 1679 Prim判断次短路的更多相关文章
- poj 1679 The Unique MST 【次小生成树】【模板】
题目:poj 1679 The Unique MST 题意:给你一颗树,让你求最小生成树和次小生成树值是否相等. 分析:这个题目关键在于求解次小生成树. 方法是,依次枚举不在最小生成树上的边,然后加入 ...
- POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]
题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...
- CodeForces - 449B 最短路(迪杰斯特拉+堆优化)判断最短路路径数
题意: 给出n个点m条公路k条铁路. 接下来m行 u v w //u->v 距离w 然后k行 v w //1->v 距离w 如果修建了铁路并不影响两点的最短距离, ...
- POJ 3259 Wormholes(最短路,判断有没有负环回路)
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 24249 Accepted: 8652 Descri ...
- POJ 1679 The Unique MST(判断最小生成树是否唯一)
题目链接: http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its min ...
- poj 1679 判断MST是不是唯一的 (次小生成树)
判断MST是不是唯一的 如果是唯一的 就输出最小的权值和 如果不是唯一的 就输出Not Unique! 次小生成树就是第二小生成树 如果次小生成树的权值和MST相等 那么MST就不是唯一的 法一: ...
- POJ 1679 The Unique MST 【判断最小生成树是否唯一】
Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Defini ...
- POJ 1679 The Unique MST (次小生成树 判断最小生成树是否唯一)
题目链接 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. De ...
- POJ 3259 Wormholes【最短路/SPFA判断负环模板】
农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ...
随机推荐
- (转载)ubuntu创建新用户并增加管…
问题导读: 1.adduser与useradd有什么区别? 2.那种方式会自动创建组.用户组等信息? 3.如何新建用户具有管理员权限? $是普通管员,#是系统管理员,在Ubuntu下,root用户默认 ...
- div模拟textarea文本域轻松实现高度自适应
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 树状数组lowbit()函数原理的解释 x&(x^(x-1)) x&-x
树状数组lowbit()函数所求的就是最低位1的位置所以可以通过位运算来计算 树状数组通过 x&(x^(x-1)) 能够成功求出lowbit的原因: 首先设x=6,即110(2) 于是我们使 ...
- 借助AMD来解决HTML5游戏开发中的痛点
借助AMD来解决HTML5游戏开发中的痛点 游戏开发的痛点 现在,基于国内流行引擎(LayaAir和Egret)和TypeScript的HTML5游戏开发有诸多痛点: 未采用TypeScript编译器 ...
- Hadoop之HelloWorld
Hadoop开始: 1. 下载最新的发行版,解压到你喜欢的路径. 2. 配置,Hadoop的配置文件位于-/hadoop/conf/ 目录下.这里我先只配置了core-site.xml文件. < ...
- 突然兴起复习一下Swift3.0
/// 参考Swift3.0.1文档 /// 摘录来自: Apple Inc. "The Swift Programming Language (Swift 3.0.1)". iB ...
- 程序员/PM怎么让项目预估的时间更加准确
项目时间的估算对项目的成败至关重要.项目时间管理包括了项目按时完成所需的各个过程.但是,在实际项目中,经常出现项目延期,估算严重不准确的现象. 一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序 ...
- PHP高并发
首先,确认服务器硬件是否足够支持当前的流量 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底 ...
- 一点点刚学不久的JS
1 js中的变量和输入输出 {使用js的三种方式} 1 在html标签中直接内嵌js(并不提倡使用): <button onclick="alert('小婊砸你真点啊!')&quo ...
- SQL注入-攻入Apple ID钓鱼网站实录
之前写的一篇利用SQL注入方式攻击钓鱼网站的文章,现在在博客园再分享一下. 下午,朋友发了一条朋友圈,内容大概这样: 大体就是她的iPhone丢了,收到了钓鱼短信,多么熟悉的套路,如下: 还好她比较机 ...