zoukankan      html  css  js  c++  java
  • poj 2488

     1 #include<iostream>
     2 #include <vector>
     3 #include<string> 
     4 using namespace std;
     5 
     6 int n, p, q, total;
     7 int area[26][26];
     8 int dirX[8] = {-1, 1, -2, 2, -2, 2, -1, 1};
     9 int dirY[8] = {-2, -2, -1, -1, 1, 1, 2, 2};
    10 vector<int> orderX;
    11 vector<int> orderY; 
    12 int dfs(int x, int y, int sum)
    13 {
    14     //Èç¹ûÊÇ×îºóÒ»¸öÇÒÒѾ­³É¹¦; 
    15     if(sum == total)
    16     {
    17         orderX.push_back(x);
    18         orderY.push_back(y);
    19         return 1;
    20     }
    21     
    22     area[x][y] = 1;
    23     int res = 0;
    24     for(int i = 0; i < 8; ++i)
    25     {
    26             int nx = x+dirX[i];
    27             int ny = y+dirY[i];
    28             if(nx >= 0 && nx < p && ny >= 0 && ny < q && area[nx][ny] == -1)
    29             {
    30                 int temp = sum+1;
    31                 res = dfs(nx, ny, temp);
    32                 if(res)
    33                 {
    34                     orderX.push_back(x);
    35                     orderY.push_back(y);
    36                     break;
    37                 }
    38             }
    39     }
    40     if(!res)
    41         area[x][y] = -1;
    42     return res;
    43 }
    44 
    45 void solver(int no)
    46 {
    47     memset(area, -1, sizeof(int)*676);
    48     cout << "Scenario #"<< no <<":" << endl;
    49     orderX.clear();
    50     orderY.clear();
    51     if(dfs(0, 0, 1))
    52     {
    53         
    54         for(int i = orderX.size()-1; i >= 0; --i)
    55         {
    56             char c = 65 + orderY[i];
    57             cout << c << orderX[i]+1;
    58         }
    59     }
    60     else
    61     {
    62         cout << "impossible";
    63     }
    64         cout << endl << endl;;
    65 }
    66 
    67 int main()
    68 {
    69     cin >> n;
    70     for(int i = 0; i < n; ++i)
    71     {
    72         cin >> p >> q;
    73         total = p * q;
    74         solver(i+1);
    75     }    
    76     return 0;
    77 } 
  • 相关阅读:
    Win7 安装
    线上java排查
    spring boot
    redisson
    Jcaptca 图片
    URL重写
    gradle导出依赖的jar包
    Redis tomcat
    flex 通过htmlservices链接moss的rest(rest 的get post方式)
    java语言MySQL批处理
  • 原文地址:https://www.cnblogs.com/shuanghong/p/4073769.html
Copyright © 2011-2022 走看看