• poj2488(dfs)A Knight's Journey


    http://poj.org/problem?id=2488

    小错误不断 数组开的a[8][2] 我居然循环到8 还一直纠结哪错了

    改完后 交了一次WA 看了看

    讨论里面 要根据字典序 所以移动坐标差a[8][2]只能那么定义 具体看代码

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 int n,m,x[27][27],q[27],flag;
     4 char w[27];
     5 int u[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}};
     6 int legal(int a,int b)
     7 {
     8     if(a>m||a<1||b<1||b>n)
     9     return 0;
    10     return 1;
    11 }
    12 void dfs(int i, int j,int v)
    13 {
    14     int s,d,xp,yp;
    15     q[v] = j;
    16     w[v] = i+'A'-1;
    17     if(flag == 1)
    18     return;
    19     if(v == n*m)
    20     {
    21         flag = 1;
    22         for(s = 1 ; s <= n*m ; s++)
    23         printf("%c%d",w[s],q[s]);
    24         puts("");
    25     }
    26     else
    27     {
    28         for(d = 0 ; d <= 7 ; d++)
    29         {
    30             xp = i+u[d][0];
    31             yp = j+u[d][1];
    32             if(legal(xp,yp)&&x[xp][yp] == 0)
    33             {
    34                 x[xp][yp] = 1;
    35                 dfs(xp,yp,v+1);
    36                 x[xp][yp] = 0;
    37             }
    38         }
    39     }
    40 }
    41 int main()
    42 {
    43     int i,t,j,k = 0;
    44     scanf("%d", &t);
    45     while(t--)
    46     {
    47         k++;
    48         memset(x,0,sizeof(x));
    49         flag = 0;
    50         scanf("%d%d",&n, &m);
    51         printf("Scenario #%d:\n",k);
    52         for(i = 1; i <= m; i++)
    53         for(j = 1 ; j <= n ; j++)
    54             {
    55                 x[i][j] = 1;
    56                 dfs(i,j,1);
    57                 x[i][j] = 0;
    58             }
    59         if(flag == 0)
    60         printf("impossible\n");
    61         if(t!=0)
    62         puts("");
    63     }
    64     return 0;
    65 }
  • 相关阅读:
    vscode 基本知识以及如何配置 C++ 环境
    计算机视觉
    GitHub 大事件
    tf 2.0
    AI 公司与比赛
    Faster RCNN 学习与实现
    pycahrm安装说明
    python 并发之线程
    python 并发之进程
    python socketserver ftp上传功能
  • 原文地址:https://www.cnblogs.com/shangyu/p/2586981.html
Copyright © 2020-2023  润新知