floyed「建议收藏」

floyed「建议收藏」#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>usingnamespacestd;constintmaxn=405;constintinf=4000005;intd1[maxn][m…

大家好,又见面了,我是你们的朋友全栈君。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=405;
const int inf=4000005;
int d1[maxn][maxn],n,m,g[maxn][maxn],d2[maxn][maxn],d3[maxn][maxn];//d1最短路径,d2最大边最小,d3最小边最大。 

void init()
{ 
   
	scanf("%d%d%d",&n,&m);
	for(int i=1;i<=n;i++)//初值 
	for(int j=1;j<=n;j++)
	{ 
   
		if(i==j) g[i][j]=0;
		else g[i][j]=inf;
	}
	for(int i=1;i<=m;i++)
	{ 
   
		int x,y,z;
		scanf("%d%d%d",&x,&y,&z);
		g[x][y]=z;
		g[y][x]=z;
	}
}

void floyd()
{ 
   
	memcpy(d1,g,sizeof(d1));
	memcpy(d2,g,sizeof(d2));
	memcpy(d3,g,sizeof(d3));
	
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	if(d2[i][j]==inf)
	d2[i][j]=-inf;
	
    for(int k=1;k<=n;k++) 
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
    { 
   
       if(d1[i][k]+d1[k][j]<d1[i][j])
         d1[i][j]=d1[i][k]+d1[k][j];
         
       int x=min(d2[i][k],d2[k][j]);
       d2[i][j]=max(d2[i][j],x);
         
         
       int  t=max(d3[i][k],d3[k][j]); 
        d3[i][j]=min(d3[i][j],t); 
    }
}
int main()
{ 
   
	init();
	floyd();
	return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147719.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vlanmuxld_vlan互通

    vlanmuxld_vlan互通无论如何,不许退缩,不许不努力,决不许放弃!文章目录一、VLAN聚合二、MUXVLAN三、QinQ四、VLANMapping五、拓扑六、基本配置与分析七、设备完整配置VLAN特性映射、聚合、MUXVLAN、QinQ;DHCP,DHCP中继,NAT,ACL。一、VLAN聚合聚合VLAN产生的背景:不同VLAN隔离二层通信(主要目的划分广播域),为了实现互通需要借助三层通信,这样每个VLAN都属于一个子网,需要自己的IP子网和网关,随着网络中VLAN数量的增加,IP子网也会剧增,但是实际每.

    2022年8月10日
    5
  • java中的输入操作

    java中的输入操作Java中输入一般是通过Scanner类来实现的:具体步骤如下:(1)创建Scanner对象,接受从控制台输入Scannerinput=newScanner(System.in);(2)接受String类型Stringstr=newinput.next();(3)接受int类型intn=input.nextInt();(4)输出结果System.out.println(str);Sys…

    2022年5月25日
    35
  • 学习JAVA要安装什么软件?[通俗易懂]

    学习JAVA要安装什么软件?[通俗易懂]我写了一夜的代码,刚才上网查资料看到你问题,听一听我的建议,希望对你有所帮助,我们都是走在路上的人MyEclipse功能很强大,我的建议是先不要使用,开发工具从记事本–UltraEdit-32–JBuilder–MyEclipse一点点过渡初学java,一般都是从控制台应用程序开发开始的(我刚开始喜欢在记事本中写代码),在cmd下调试,首先你要为你的电脑搭建好开发环境

    2022年7月8日
    26
  • 闫学灿acwing_acwing算法基础

    闫学灿acwing_acwing算法基础1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####—#####—#—#####—# 2 # # | # # # # # #—#####—#####—#####—# 3 # | | # # # # # #—#########—#####–…

    2022年8月8日
    6
  • ajax html例子,AJAX实例[通俗易懂]

    ajax html例子,AJAX实例[通俗易懂]AJAX实例实例一:一个简单的AJAX实例创建一个简单的XMLHttpRequest,从一个TXT文件中返回数据实例functionloadXMLDoc(){varxmlhttp;if(window.XMLHttpRequest){//IE7+,Firefox,Chrome,Opera,Safari浏览器执行代码xmlhttp=newXMLHttpRequest();}els…

    2022年8月16日
    8
  • 通过ProGet搭建一个内部的Nuget服务器

    通过ProGet搭建一个内部的Nuget服务器

    2022年2月21日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号