アットウィキロゴ

syu

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