HDU 1869(最短路模板——ployd)

题目

模板题目,直接使用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");
		}	
	}
}

你可能感兴趣的:(最短路)