模板题目,直接使用ployd的模板
AC代码:
import java.io.*;
import java.math.*;
import java.math.BigInteger;
import java.util.*;
public class Main {
static int m,n,u,v,w;
static final int N=150;
static final int INF=0x3f3f3f3f;
static long[][]g;
static void floyd() {
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(g[j][i]>g[j][k]+g[k][i])
g[j][i]=g[j][k]+g[k][i];
}
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()) {
g=new long[N][N];
n=sc.nextInt();
m=sc.nextInt();
for(int i=0;i<=n;i++) {
for(int j=0;j<n;j++) {
g[i][j]=i==j?0:INF;
}
}
while(m-->0) {
u=sc.nextInt();//点
v=sc.nextInt();//点
w=1;//距离
g[u][v]=g[v][u]=w;
}
floyd();
boolean b=true;
for(int i=0;i<n;i++) {
for(int j=0;j<i;j++) {
if(g[i][j]>7)b=false;
}
}
if(b)System.out.println("Yes");
else System.out.println("No");
}
}
}