zoukankan      html  css  js  c++  java
  • POJ 2488 A Knight's Journey

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #define CL(x, y) memset(x, y, sizeof(x))
     6 using namespace std;
     7 const int MAX = 28;
     8 int N, a, b, flag;
     9 int chessboard[MAX*MAX], used[MAX][MAX];
    10 int Move[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}};//此处知识改变了一下顺序,无过这样,就无语了,666666
    11 void DFS(int x, int y, int z);
    12 int main()
    13 {
    14     cin >> N;
    15     for(int i = 1; i <= N; i++)
    16     {
    17         cin >> a >> b;
    18         CL(used, 0);
    19         CL(chessboard, 0);
    20         flag = 0;
    21         printf("Scenario #%d:
    ", i);
    22         DFS(1, 1, 1);
    23         if(!flag)
    24             cout << "impossible";
    25         if(i!=N)
    26             cout << endl << endl;
    27     }
    28 }
    29 void DFS(int x, int y, int z)//z表示所走的步数
    30 {
    31     int i;
    32     if(flag)
    33         return;
    34     used[x][y] = 1;
    35     chessboard[z] = x * 10 + y;//此处用于记录新的坐标数, chessboard[][]的范围一定要注意
    36     if(z == a*b)
    37     {
    38         for(i = 1; i <= z; i++)
    39             printf("%c%d",chessboard[i]/10+'A'-1,chessboard[i]%10);
    40         flag = 1;
    41         return ;
    42     }
    43     for(i = 0; i < 8; i++)
    44     {
    45         int xx = x + Move[i][0];
    46         int yy = y + Move[i][1];
    47         if(xx>=1 && xx<=b && yy>=1 && yy<=a && !used[xx][yy])//此处a,b反过来,b:代表字母,a:代表数字
    48         {
    49             used[xx][yy] = 1;
    50             DFS(xx,yy,z+1);
    51             if(flag)
    52                 return;
    53             used[xx][yy] = 0;
    54         }
    55     }
    56     return ;
    57 }
    View Code

    通过一种方法记录位置,这个 方法是在很高明,(x,y)就是xy

  • 相关阅读:
    软件工程第三次作业
    软件工程第二次作业
    Java基础篇
    2018软件工程第一次作业
    网络基础知识(http请求)
    linux命令
    添加电子称程序
    多线程Demo
    关闭一个winform窗体刷新另外一个
    通过WebApi取出XML数据
  • 原文地址:https://www.cnblogs.com/ghostTao/p/4324040.html
Copyright © 2011-2022 走看看