比较简单的算法:但是当点太多需要剪枝,不然很耗时

void Floyd()
{
for(int k=;k<n;++k)
for(int i=;i<n;++i)
for(int j=;j<n;++j)
dj[i][j] = min(dj[i][j],dj[i][k]+dj[k][j]);
}

hdu1869

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define INF (1<<29)
#define N (110) int dj[N][N];
int n,m; void Floyd()
{
for(int k=;k<n;++k)
for(int i=;i<n;++i)
for(int j=;j<n;++j)
dj[i][j] = min(dj[i][j],dj[i][k]+dj[k][j]);
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
for(int i=;i<N;++i)
for(int j=;j<N;++j)
{
if(i != j) dj[i][j] = INF;
else dj[i][j] = ;
}
for(int i=;i<m;++i)
{
int a,b;
scanf("%d%d",&a,&b);
if(a != b) dj[a][b] = dj[b][a] = ;
}
Floyd();
bool flag = true;
for(int i=;i<n;++i)
for(int j=;j<n;++j)
if(dj[i][j] > )
{
flag =false;
break;
}
if(flag) printf("Yes\n");
else printf("No\n");
}
return ;
}

Floyd模板的更多相关文章

  1. Floyd模板(详细操作最基础版)

    #include<cstdio> #include<iostream> using namespace std; #define MAX 500 #define INFE 1& ...

  2. 图论--传递闭包(Floyd模板)

    #include<iostream> #include<cstring> #include<cmath> using namespace std; int dp[1 ...

  3. 图论--最小环--Floyd模板

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  4. 最短路径(Floyd 模板题)

    题目:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2143&cid=1186 #include<stdio.h> #incl ...

  5. poj 1125 谣言传播 Floyd 模板题

    假如有3个点 点1到点2要5分钟 点1到点3要3分钟 那么5分钟的时间可以传遍全图 所以要先找一个点到其他点的最长时间 再从最长的时间里找出最小值 Sample Input 3 // 结点数2 2 4 ...

  6. hdu 1874 畅通工程续(模板题 spfa floyd)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 spfa 模板 #include<iostream> #include<stdio ...

  7. poj 2263&& zoj1952 floyd

    Fiber Network Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2725   Accepted: 1252 Des ...

  8. 【HDOJ1217】【Floyd求最长路】

    http://acm.hdu.edu.cn/showproblem.php?pid=1217 Arbitrage Time Limit: 2000/1000 MS (Java/Others)    M ...

  9. TZOJ 3663 最长路径(floyd)

    描述 网络是由很多交换机与网线组成的,网络中的信息可能会在这些网络中不断转发,给定任意两个交换机,我们需要从中找到最快的路径进行转发,我们定义转发过程中所经过的网线条数为两个交换机之间的路径长度.如果 ...

随机推荐

  1. java中split以。点和|分割的问题

    问题:想要按照点来切分字符串直接这样 String[] filep=filename.split("."); 结果得到一个空数组 解决方法: 法一:需要转义,改为:(注意是2个\\ ...

  2. Ubuntu 16.04安装Chrome浏览器

    一.先有一个hosts能访问Google 参考:http://www.cnblogs.com/EasonJim/p/5999060.html 二.安装方法有两种,如下所示: 1.下载deb包(推荐) ...

  3. Effictive Java学习笔记1:创建和销毁对象

    建议1:考虑用静态工厂方法代替构造器 理由:1)静态方法有名字啊,更容易懂和理解.构造方法重载容易让人混淆,并不是好主意 2)静态工厂方法可以不必每次调用时都创建一个新对象,而公共构造函数每次调用都会 ...

  4. Docker: Docker容器之间互相通信

    最简单的方法,关闭防火墙(只建议用于开发环境) systemctl stop firewalld

  5. MySQL: 让MySQL支持颜文字emoji

    数据库需要支持utf8mb4,如果已经创建了,那么可以用如下命令转换: alter database xxxx character set utf8mb4 collate utf8mb4_unicod ...

  6. 从一个input点击引起的思考

    一个input或者select标签都是有属于自己的disabled属性的,这个属性很少被使用,但是我们在项目实际开发的过程中也会遇到,比如我选择之后就让他置灰不可以变动了,那么久可利用js动态设置.对 ...

  7. HDU 4771 Stealing Harry Potter's Precious dfs+bfs

    Stealing Harry Potter's Precious Problem Description Harry Potter has some precious. For example, hi ...

  8. ios6--UILabel

    // // ViewController.m // 02-UILabel的使用 // // UILabel显示一段文字. #import "ViewController.h" @i ...

  9. 【模板】 倍增lca

    虽然很基础,但是还是复习了一下,毕竟比树剖好写... 代码: #include<iostream> #include<cstdio> #include<cmath> ...

  10. kubernetes Traefik ingress配置详解

    理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上.Ingress相当于nginx.apache等负载均衡方向代 ...