zoukankan      html  css  js  c++  java
  • 棋盘问题(简单的搜索题)

    A - 棋盘问题
    Time Limit:1000MS    Memory Limit:10000KB    64bit IO Format:%I64d & %I64u
    SubmitStatus

    Description

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。

    Input

    输入含有多组测试数据。
    每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
    当为-1 -1时表示输入结束。
    随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。

    Output

    对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。

    Sample Input

    2 1
    #.
    .#
    4 4
    ...#
    ..#.
    .#..
    #...
    -1 -1
    

    Sample Output

    2
    1
    
    由于棋盘的不规则,这比王后问题实际上更为简单,因为基本上不会TLE。
    AC Code:
     1 //Memory: 164 KB         Time: 0 MS
     2 //Language: C++         Result: Accepted
     3 #include <iostream>
     4 #include <cstdio>
     5 using namespace std;
     6 
     7 int n, c;
     8 char board[9][9];
     9 bool col[9];
    10 
    11 void DFS(int i, int k)  //i为当前行号
    12 {
    13     if(n - i < k) return;  //剪枝
    14     if(!k)  //全部棋子放置完毕
    15     {
    16         c++;
    17         return;
    18     }
    19     for(int j = 0; j < n; j++)
    20     {
    21         if(board[i][j] == '#' && !col[j])
    22         {
    23             col[j] = 1;
    24             DFS(i + 1, k - 1);
    25             col[j] = 0;
    26         }
    27     }
    28     DFS(i + 1, k);  //当第i行不能放棋子时
    29 }
    30 
    31 int main()
    32 {
    33     int k;
    34     while(scanf("%d %d", &n, &k) && n != -1)
    35     {
    36         c = 0;
    37         for(int i = 0; i < n; i++)
    38         {
    39             scanf("%s", board[i]);
    40             col[i] = 0;
    41         }
    42         DFS(0, k);
    43         printf("%d\n", c);
    44     }
    45     return 0;
    46 }
    47 
    48  
  • 相关阅读:
    【Java-Web】初始化加载Serlvet工程后-HttpServlet报错
    【GIS】Cesium GLTF
    【视频】ffmpeg mov mp4 m3u8 ts
    【GIS】ArcGIS Server密码
    【NodeJS】http-server.cmd
    【GIS】Cesium回到初始位置
    【GIS】postgres(postgis) --》nodejs+express --》geojson --》leaflet
    深入浅出数据仓库中SQL性能优化之Hive篇
    大数据时代的技术hive:hive介绍
    hive优化之------控制hive任务中的map数和reduce数
  • 原文地址:https://www.cnblogs.com/cszlg/p/2910407.html
Copyright © 2011-2022 走看看