package line5;
public class pro {
int[][] dis=new int[100][100];
int[] number_dir=new int[100];
int[][] dir=new int[100][100];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
int s;
dir[1][1]=2;
dis[1][1]=1;
number_dir[1]=1;
dir[50][1]=49;
dis[50][1]=1;
number_dir[50]=1;
for(s=2;s<50;s++){
dir[s][1]=s-1;
dis[s][1]=1;
dir[s][2]=s+1;
dis[s][2]=1;
number_dir[s]=2;
}
int tr;
for(tr=1;tr<300;tr++){
int n1=(int)(50*Math.random())+1;
trial(n1);
}
}
void trial(int n1){
int m1=(int)(number_dir[n1]*Math.random())+1;
int m2=dir[n1][m1];
int d1=dis[n1][m1];
int k1=(int)(number_dir[m2]*Math.random())+1;
int k2=dir[m2][k1];
int d2=dis[m2][k1];
int s;
int ch;
ch=0;
if(k2==n1)ch=100;
for(s=1;s<number_dir[n1]+1;s++){
if(dir[n1][s]==k2)ch=100;
if(dir[n1][s]==k2)check(n1,s,d1,d2);
}
if(ch<50){
number_dir[n1]=number_dir[n1]+1;
int z=number_dir[n1];
dir[n1][z]=k2;
dis[n1][z]=dis[m2][k1]+dis[n1][m1];
}
System.out.println(ch+","+n1+","+k2);
}
void check(int n1,int s,int d1,int d2){
int dp=dis[n1][s];
if(dp>d1+d2)dis[n1][s]=d1+d2;
}
}
最終更新:2015年07月11日 14:25