POJ 1659 Frogs' Neighborhood 搜索

POJ 1659 Frogs' Neighborhood 搜索

 

#include  < stdio.h >
#include 
< string .h >

int  T, N, arr[ 16 ], map[ 16 ][ 16 ];

int  dfs( int  idx,  int  i)
{
    
if (idx >= N)
        
return 1;
    
if (!arr[idx])
        
return dfs(idx + 1, idx + 2);
    
for ( ; i < N; i++{
        
if (!arr[i])
            
continue;
        arr[i]
--;
        arr[idx]
--;
        map[idx][i]
++;
        map[i][idx]
++;
        
if (dfs(idx, i + 1))
            
return 1;
        arr[i]
++;
        arr[idx]
++;
        map[idx][i]
--;
        map[i][idx]
--;
    }

    
return 0;
}


int  main()
{
    
int i, j;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d"&T);
    
while (T--{
        scanf(
"%d"&N);
        
for (i = 0; i < N; i++)
            scanf(
"%d"&arr[i]);
        memset(map, 
0sizeof(map));
        
if (dfs(01)) {
            printf(
"YES\n");
            
for (i = 0; i < N; i++{
                
for (j = 0; j < N; j++)
                    printf(
"%d ", map[i][j]);
                printf(
"\n");
            }

            printf(
"\n");
        }
 else 
            printf(
"NO\n\n");
    }


    
return 0;
}

你可能感兴趣的:(POJ 1659 Frogs' Neighborhood 搜索)