一道競賽題

#include "stdio.h" #include "math.h" #define N 30 #define M 2 #define P 70 #define S 500 #define T 220 void main() {int i=0,dis=0,r=0,a[P],q=10,k=0,l=0,c=0,t=0,disz[10]; double cha=0,chaz[10],cost=0,time=0,f=1.1666,max=0,costz[10],timez[10]; int j1=0,j2=0,j3=0,j4=0,j5=0,j6=0,j7=0; struct dump   { int num; double Tdump; int x,y;   }; struct dump d[37]={{1,1.50,3,2}, {2,1.5,1,5}, {3,0.55,5,4}, {4,1.20,4,7}, {5,1.30,3,11}, {6,0.85,0,8}, {7,1.20,7,9}, {8,2.30,9,6}, {9,1.40,10,2}, {10,1.50,14,0}, {11,1.10,17,3}, {12,2.70,14,6}, {13,1.80,10,12}, {14,1.80,10,12}, {15,1.40,19,9}, {16,1.50,2,16}, {17,0.80,6,18}, {18,1.50,11,17}, {19,0.80,15,12}, {20,0.60,7,14}, {21,1.30,17,16}, {22,1.80,21,0}, {23,1.40,27,9}, {24,1.60,15,19}, {25,1.60,15,14}, {26,1.00,20,17}, {27,2.00,21,13}, {28,1.00,24,20}, {29,2.10,25,16}, {30,1.20,28,18}, {31,1.90,5,12}, {32,1.20,22,5}, {33,1.60,25,7}, {34,1.20,9,20}, {35,1.50,9,15}, {36,1.30,30,12}, {37,0.00,0,0}};

     for(j1=0;j1<36;j1++){if(j1%2==0)printf("11111111111111/n");          for(j2=j1+1;j2<36;j2++){if(j2%3==0)printf("22222222222/n");     for(j3=j2+1;j3<36;j3++){if(j3%4==0)printf("333333333/n");      for(j4=j3+1;j4<36;j4++){if(j4%5==0)printf("4444444/n");       for(j5=j4+1;j5<36;j5++){if(j5%6==0)printf("55555/n");        for(j6=j5+1;j6<36;j6++){if(j6%7==0)printf("666/n");         for(j7=j6+1;j7<36;j7++)                               {cha=(6.00-(d[j1].Tdump+d[j2].Tdump+d[j3].Tdump+d[j4].Tdump+d[j5].Tdump+d[j6].Tdump+d[j7].Tdump));                                dis=(fabs(d[j1].x-d[j2].x)+fabs(d[j2].x-d[j3].x)+fabs(d[j3].x-d[j4].x)                                             +fabs(d[j4].x-d[j5].x)+fabs(d[j5].x-d[j6].x)+fabs(d[j6].x-d[j7].x)                                             +fabs(d[j1].y-d[j2].y)+fabs(d[j2].y-d[j3].y)+fabs(d[j3].y-d[j4].y)                                             +fabs(d[j4].y-d[j5].y)+fabs(d[j5].y-d[j6].y)+fabs(d[j6].y-d[j7].y));                                                                                           cost=((d[j7].x+d[j7].y)*0.4+(fabs(d[j7].x-d[j6].x)+fabs(d[j7].y-d[j6].y))*d[j7].Tdump*1.8                                              +(fabs(d[j6].x-d[j5].x)+fabs(d[j6].y-d[j5].y))*(d[j7].Tdump+d[j6].Tdump)*1.8                                              +(fabs(d[j5].x-d[j4].x)+fabs(d[j5].y-d[j4].y))*(d[j7].Tdump+d[j6].Tdump+d[j5].Tdump)*1.8                                              +(fabs(d[j4].x-d[j3].x)+fabs(d[j4].y-d[j3].y))*(d[j7].Tdump+d[j6].Tdump+d[j5].Tdump+d[j4].Tdump)*1.8                                              +(fabs(d[j3].x-d[j2].x)+fabs(d[j3].y-d[j2].y))*(d[j7].Tdump+d[j6].Tdump+d[j5].Tdump+d[j4].Tdump+d[j3].Tdump)*1.8                                              +(fabs(d[j2].x-d[j1].x)+fabs(d[j2].y-d[j1].y))*(d[j7].Tdump+d[j6].Tdump+d[j5].Tdump+d[j4].Tdump+d[j3].Tdump+d[j2].Tdump)*1.8                                              +(fabs(d[j1].x+d[j1].y))*(d[j7].Tdump+d[j6].Tdump+d[j5].Tdump+d[j4].Tdump+d[j3].Tdump+d[j2].Tdump+d[j1].Tdump)*1.8);                                                      max=fabs(d[j1].x+d[j1].y);                                             if(max<fabs(d[j2].x+d[j2].y))max=fabs(d[j2].x+d[j2].y);                                             if(max<fabs(d[j3].x+d[j3].y))max=fabs(d[j3].x+d[j3].y);                                             if(max<fabs(d[j4].x+d[j4].y))max=fabs(d[j4].x+d[j4].y);                                             if(max<fabs(d[j5].x+d[j5].y))max=fabs(d[j5].x+d[j5].y);                                             if(max<fabs(d[j6].x+d[j6].y))max=fabs(d[j6].x+d[j6].y);                                               if(max<fabs(d[j7].x+d[j7].y))max=fabs(d[j7].x+d[j7].y);                                                       time=2*max*60/40+7*10;

          if(cha<=M&&cha>=0&&dis<N&&cost<S&&time<T){disz[k]=dis;chaz[k]=cha;costz[k]=cost;timez[k]=time;k++;                                                                           printf("**%2d, %2d, %2d , %2d, %2d, %2d, %2d**",d[j1].num,d[j2].num,d[j3].num,d[j4].num,d[j5].num,d[j6].num,d[j7].num);                                                                           if(j7%2==0)printf("/n");                                                                             for(;r<P;)                                                                                  {                                                                                 a[r++]=d[j1].num;                                                                                 a[r++]=d[j2].num;                                                                                 a[r++]=d[j3].num;                                                                                 a[r++]=d[j4].num;                                                                                 a[r++]=d[j5].num;                                                                                 a[r++]=d[j6].num;                                                                                 a[r++]=d[j7].num;                                                                                 if(r>P){printf("*********/n");                                                                                         goto label;                                                                                        }                                                                                  break;                                                                                  }                                                                                                                                                       }                                                              }                                                                                               }                                                        }                                                }

                                       }                                }                           }      printf("**********all test***********all test***********all test***************/n");   label: for(r=0;r<P;r++)                {if(r%7==0){ printf("/ndis is:%5d,cha is: %5fcost is%f,time is%f",disz[l],chaz[l],costz[l],timez[l++]);  printf("the zuhe is /n<<:");                           }                printf("%5d",a[r]);                        }

}

發佈了31 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章