package line5;
public class pro {
int[][] dis=new int[100][100];
int[] number_dir=new int[100];
int[][] dir=new int[100][100];
int number_route;
int[][] code_route=new int[100][100];
int[][] route=new int[10000][70];
int[] length_route=new int[10000];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
int s;
dir[1][1]=2;
dis[1][1]=10;
number_dir[1]=1;
code_route[1][1]=1;
route[1][1]=1;
route[1][2]=2;
number_road[1]=2;
dir[50][1]=49;
dis[50][1]=10;
number_dir[50]=1;
code_route[50][1]=2;
number_road[1]=2;
number_route=2;
for(s=2;s<50;s++){
number_route=number_route+1;
dir[s][1]=s-1;
dis[s][1]=10;
code_route[s][1]=number_route;
number_route=number_route+1;
dir[s][2]=s+1;
dis[s][2]=10;
number_dir[s]=2;
code_route[s][2]=number_route;
}
int tr;
for(tr=1;tr<3000;tr++){
int n1=(int)(50*Math.random())+1;
trial(n1);
}
System.out.println(number_dir[50]);
}
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日 15:31