pku2560.java

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· Java 代码 · 共 65 行

JAVA
65
字号
import java.io.*;
import java.util.*;
import java.lang.Math;
public class Main
{
	public static void main(String args[]) throws Exception
	{
		Scanner cin=new Scanner(System.in);
		int N,i,j,near,number=1;
		double[][] point,dist;
		boolean[] status;
		double min,len=0;
		int minpoint;
		N=cin.nextInt();
		point=new double[N][2];
		dist=new double[N][N];
		status=new boolean[N];
		for(i=0;i<N;i++)
		{
			point[i][0]=cin.nextDouble();
			point[i][1]=cin.nextDouble();
			status[i]=false;
		}
		for(i=0;i<N;i++)
		{
			for(j=0;j<N;j++)
			{
				dist[i][j]=length(point[i],point[j]);
			}
		}
		status[0]=true;
		number=1;
		while(number<N)
		{
			j=0;
			while(status[j])j++;
			minpoint=j;
			min=dist[0][j];
			for(i=0;i<N;i++)
			{
				if(status[i])
				{
					for(j=0;j<N;j++)
					{
						if(!status[j])
							if(dist[i][j]<min)
							{
								min=dist[i][j];
								minpoint=j;
							} 
					}
				}
			}
			status[minpoint]=true;
			number++;
			len+=min;
		}
		System.out.printf("%.2f\n",len);
	}
	static double length(double a[],double b[])
	{
		return Math.sqrt((a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1]));
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?