/*次小生成树
题意:给你一些路径,现在将一部分路径权值减少后问是否可以替代最小生成树里面的边。
解:次小生成树,即将这条边连上,构成一个环
求出任意两点路径之间的除了这条边的最大值,比较这个最大值>=这条边,说明可以替换。
prime算法次小生成树模板
*/
#include<stdio.h>
#include<string.h>
#define N 1100
#define inf 0x3fffffff
int ma[N][N];
int Min(int a,int b) {
return a>b?b:a;
}
int Max(int a,int b) {
return a>b?a:b;
}
struct node {
int u,v,w;
}bian[N*100];
int maxd[N][N],n;
void prime() {
int i,j,dis[N],vis[N],pre[N],stac[N],top=0;
memset(maxd,-1,sizeof(maxd));
for(i=1;i<=n;i++) {//初始化
dis[i]=ma[1][i];
pre[i]=1;
}
stac[top++]=1;//储存最小生成树的点
memset(vis,0,sizeof(vis));
vis[1]=1;
for(i=1;i<n;i++) {
int minn=inf,next=1;
for(j=1;j<=n;j++)
if(!vis[j]&&minn>dis[j]) {//找到最近的
minn=dis[j];
next=j;
}
vis[next]=1;
//printf("%d\n",minn);
for(j=0;j<top;j++)
maxd[next][stac[j]]=maxd[stac[j]][next]=Max(minn,maxd[pre[next]][stac[j]]);//当前点与栈里面的点的最大值为minn和他的父节点与其他点的权值最大值
stac[top++]=next;//加入栈
for(j=1;j<=n;j++)
if(!vis[j]&&dis[j]>ma[next][j]) {//更新距离
pre[j]=next;//与j连接的最近的点即为他的父节点
dis[j]=ma[next][j];
}
}
return ;
}
int main(){
int m,i,j,a,b,c,q;
while(scanf("%d%d%d",&n,&m,&q)!=EOF) {
for(i=1;i<=n;i++) {
ma[i][i]=0;
for(j=i+1;j<=n;j++)
ma[i][j]=ma[j][i]=inf;
}
for(i=0;i<m;i++) {
scanf("%d%d%d",&a,&b,&c);
ma[a][b]=ma[b][a]=Min(ma[a][b],c);//
// printf("%d\n",ma[a][b]);
bian[i+1].u=a;bian[i+1].v=b;
bian[i+1].w=c;
}
prime();
while(q--) {
scanf("%d%d",&a,&b);
// printf("%d\n",maxd[bian[a].u][bian[a].v]);
if(maxd[bian[a].u][bian[a].v]>=b)//比较即可
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}

poj 2831 次小生成树模板的更多相关文章

  1. poj1679The Unique MST(次小生成树模板)

    次小生成树模板,别忘了判定不存在最小生成树的情况 #include <iostream> #include <cstdio> #include <cstring> ...

  2. poj 1679 The Unique MST (次小生成树模板题)

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

  3. POJ 1679 The Unique MST 【最小生成树/次小生成树模板】

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22668   Accepted: 8038 D ...

  4. POJ_1679_The Unique MST(次小生成树模板)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23942   Accepted: 8492 D ...

  5. POJ-1679 The Unique MST,次小生成树模板题

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K       Description Given a connected undirec ...

  6. poj 1679 次小生成树

    次小生成树的求法: 1.Prime法 定义一个二维数组F[i][j]表示点i到点j在最小生成树中的路径上的最大权值.有个知识就是将一条不在最小生成树中的边Edge加入最小生成树时,树中要去掉的边就是E ...

  7. The Unique MST POJ - 1679 次小生成树prim

    求次小生成树思路: 先把最小生成树求出来  用一个Max[i][j] 数组把  i点到j 点的道路中 权值最大的那个记录下来 used数组记录该条边有没有被最小生成树使用过   把没有使用过的一条边加 ...

  8. The Unique MST POJ - 1679 (次小生成树)

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

  9. uva10600次小生成树模板题

    裸题,上模板就行,注意j  !  =  k #include<map> #include<set> #include<cmath> #include<queu ...

随机推荐

  1. 设计模式 |备忘录模式(memento)

    定义: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以将该对象恢复到原先保存的状态. 结构:(书中图,侵删) Originator:需要备份的类(写在便签上 ...

  2. jenkinsfile or pipline 实现微服务自动发布回滚流程

    1 #!/usr/bin/env groovy Jenkinsfile node { //服务名称 def service_name = "**" //包名 def service ...

  3. Jquery 可拖拽的Ztree

    比较懒,就只贴关键代码吧,自己把有用的属性全部打印出来了,也加了不少注释. 保存后涉及到的排序问题,刷新问题还未考虑到,后面有的话再加. $.fn.zTree.init($("#ztree& ...

  4. Java——Spring注解

    Spring常用注解使用注解来构造IoC容器用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan bas ...

  5. 3--Java NIO基础1

    一.NIO概述 1. BIO带来的挑战 BIO即堵塞式I/O,数据在写入或读取时都有可能堵塞,一旦有堵塞,线程将失去CPU的使用权,性能较差. 2. NIO工作机制 Java NIO由Channel. ...

  6. html5——颜色

    CSS2 1.opacity,可以设置透明度,但是父盒子设置了透明度会影响子盒子 CC3 1.transparent属性,但是不可改变透明值 2.rgba():r--red g--green b--b ...

  7. jQuery——类的添加与删除

    添加类:addClass 删除类:removeClass 判断类是否存在:hasClass <!DOCTYPE html> <html lang="en"> ...

  8. CSS——行业动态demo

    1.padding的运用:子div继承父div的宽,子div的padding-left值是不会撑大的. 2.背景图片的运用:不平铺.定位 3.ul本身就是一个盒子,它的高度是li中的字体的默认高度撑起 ...

  9. [Windows Server 2012] 安装Apache+PHP+MySQL

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:Win2012 ...

  10. 如何描述bug

    清晰的标题 环境描述 已经采取了什么措施 结果 日志 Coredump 截图