zoukankan      html  css  js  c++  java
  • POJ1321 棋盘游戏

    跳转了解题意

    分析:是八皇后问题的简化版,只用判断行列有无放置棋子,与八皇后问题的不同之处在于,某一列可以不放置棋子,棋子只能放置在有棋盘空格的地方。

    因为某一列可以不放棋子,所以每次搜完这一列要到下一列,注意判断边界条件。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 
     6 using namespace std;
     7 
     8 char g[10][10];
     9 bool vis[10][10],line[10];
    10 int n,k,ans,num;
    11 
    12 inline void dfs(int pos,int cnt)
    13 {
    14     if(pos>n) return;
    15     for(int i=1;i<=n;i++)
    16     {
    17         if(g[pos][i]!='#') continue;
    18         else if(line[i]) continue;
    19         else if(!line[i])
    20         {
    21             line[i]=true;
    22             if(cnt+1==k) ans++; 
    23             else dfs(pos+1,cnt+1);
    24             line[i]=false;
    25         } 
    26     }
    27     dfs(pos+1,cnt);
    28 }
    29 
    30 int main()
    31 {
    32     while(1)
    33     {
    34         scanf("%d%d",&n,&k);
    35         if(n==-1&&k==-1) return 0;
    36         for(int i=1;i<=n;i++)
    37             for(int j=1;j<=n;j++)
    38                 cin>>g[i][j];
    39         memset(vis,false,sizeof(vis));
    40         memset(line,false,sizeof(line));
    41         ans=0;
    42         dfs(1,0);
    43         printf("%d
    ",ans);
    44     }
    45     return 0;
    46 }
    POJ1231 code
  • 相关阅读:
    响应式布局
    CSS3过渡
    CSS3背景
    CSS渐变
    CSS3选择器
    CSS3
    自定义指令
    键盘修饰符
    过滤器
    v-if与v-show区别
  • 原文地址:https://www.cnblogs.com/Hoyoak/p/11365152.html
Copyright © 2011-2022 走看看