1008 Gnome Tetravex

时间:2023-12-30 23:16:08

练习使用DPS的题,不知道有无别的做法,思路不复杂。形式是统计并且进行数字配对。

 #include <stdio.h>

 ][],note[],ans[];

 void ini(){
     int i,j,top,right,bottom,left;
     ;i<;i++){
         ;j<;j++)
             sub[i][j]=;
         note[i]=;
         ans[i]=;
     }
     m=;
     f=n*n;
     ;i<f;i++){
         scanf("%d %d %d %d",&top,&right,&bottom,&left);
            ;j<m;j++){
             ]==top&&sub[j][]==right&&sub[j][]==bottom&&sub[j][]==left){
                 note[j]++;
                 break;
             }
         }
         if(j==m){
             sub[m][]=top;
             sub[m][]=right;
             sub[m][]=bottom;
             sub[m][]=left;
             note[m]=;
             m++;
         }
     }
 } 

 int DPS(int pos){
     if(pos==f)
         ;
     else{
         int i;
         ;i<m;i++){
             if(note[i]){
                 if(pos>=n)
                     ]!=sub[i][])
                         continue;
                 )
                     ]][]!=sub[i][])
                         continue;
                 note[i]--;
                 ans[pos]=i;
                 ))
                      ;
                 note[i]++;
             }
         }
     }
     ;
 }

 int main(){
     ;
     ){
         scanf("%d",&n);
         if(!n)
             break;
         ini();
         )
             printf("\n");
         printf("Game %d: ",index++);
         ))
             printf("Possible\n");
         else
             printf("Impossible\n");
     }
     ;
 }