package px;
public class pro {
int[] p=new int[101];
int[] pr=new int[101];
int s,number;
double[][] v=new double[101][11];
int[][] gotos=new int[101][11];
int[] op=new int[101];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
number=100;
for(s=1;s<number+1;s++){
p[s]=7;
}
p[44]=0;
p[49]=0;
for(s=1;s<number+1;s++){
pr[s]=0;
}
double e1;
int mode;
mode=0;
while(mode<5){
for(s=1;s<11;s++){
e1=0;
if(pr[s]>0)e1=(s-pr[1])*(s-pr[1]);
if(p[s]>0)e1=e1+(s-p[1])*(s-p[1]);
v[1][s]=e1;
}
int t,sx,sxs;
double maxv;
for(t=2;t<101;t++){
for(s=1;s<11;s++){
e1=0;
if(pr[t]>0)e1=(s-pr[t])*(s-pr[t]);
if(p[t]>0)e1=e1+(s-p[t])*(s-p[t]);
maxv=999;
sxs=0;
for(sx=1;sx<11;sx++){
double v1=e1+v[t-1][sx];
double e2=(s-sx)*(s-sx);
if(e2>3)v1=999;
if(maxv>v1)sxs=sx;
if(maxv>v1)maxv=v1;
}
v[t][s]=maxv;
gotos[t][s]=sxs;
}
}
maxv=999;
sxs=0;
for(s=1;s<11;s++){
if(v[number][s]<maxv)sxs=s;
if(v[number][s]<maxv)maxv=v[number][s];
}
op[number]=sxs;
for(s=1;s<number;s++){
t=number+1-s;
sx=op[t];
op[t-1]=gotos[t][sx];
}
mode=mode+1;
System.out.println(op[1]);
for(s=1;s<number+1;s++){
pr[s]=op[s];
}
}
}
}
最終更新:2015年04月27日 04:31