zoukankan      html  css  js  c++  java
  • POJ1321-棋盘问题-(dfs)

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

    解题:

    dfs中,两种情况,某一行摆不摆?某一列摆不摆?

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<math.h>
    #include<string>
    #include<map>
    #include<queue>
    #include<stack>
    #include<set>
    #define ll long long
    #define inf 0x3f3f3f3f
    using namespace std;
    
    char a[10][10];
    int l[10];///列
    int ans;
    int n,k;
    
    void dfs(int x,int cnt)
    {
    
        if(cnt==k)///摆k个,方案数+1
        {
            ans++;
            return;
        }
        if(x==n)///行数越界
            return;
    
        dfs(x+1,cnt);///这一行不摆
    
        for(int j=0;j<n;j++)///遍历一行,有位置就摆!
        {
            if( a[x][j]=='#' && l[j]==0 && cnt<k )///如果有位置摆就摆,没有就不摆。
            {
                l[j]=1;
                dfs( x+1,cnt+1 );///摆完就进入下一行,当前棋子数+1
                l[j]=0;///这一列不摆
            }
        }
    }
    
    
    int main()
    {
        while( scanf("%d%d",&n,&k) && n!=-1 && k!=-1 )
        {
            memset(l,0,sizeof(l));
            memset(a,0,sizeof(a));
            ans=0;
            for(int i=0;i<n;i++)
                scanf("%s",a[i]);
    
            dfs(0,0);///行 棋子数
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    ionic之样式bar-assertive
    (?m) 可以让.去匹配换行
    perl 正则前导字符
    ionic之样式bar-energized
    ionic之样式bar-balanced
    ionic之样式bar-calm
    perl /m
    sort_buffer_size:
    Filter plugins ? mutate:
    Codec plugins ? multiline
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/11173742.html
Copyright © 2011-2022 走看看