当前位置: 首页 > news >正文

厦门市城市建设档案馆网站廊坊网站设计

厦门市城市建设档案馆网站,廊坊网站设计,特供邯郸网站建设,厦门市思明区建设局网站在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input …

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

Input

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

Output

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

Sample

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

#include<iostream>
using namespace std;
char a[100][100];
int n,k,dp[100],sum=0;
void dfs(int d,int k){//1 4
    if(k==0){
        sum++;
        return;
    }
    for(int i=d;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]=='.'||dp[j]==1){
            continue;    
            }
            dp[j]=1;
            dfs(i+1,k-1);
            dp[j]=0;
     }
    }
}
int main(){
    
    while(scanf("%d%d",&n,&k)){
        if(n==-1&&k==-1)return 0;
        for(int i=1;i<=n;i++){
            dp[i]=0;
            for(int j=1;j<=n;j++){
                cin>>a[i][j];
            }
        }
        sum=0;
        dfs(1,k);
        cout<<sum<<endl;
    }
    return 0;
}

http://www.dt0577.cn/news/54705.html

相关文章:

  • 一级a做爰片免费网站 视频地推扫码平台
  • seo站长助手网络营销的方法
  • 济阳做网站哪家好交换友情链接的要求有
  • 做购物商城网站seo网络运营
  • 山东网站建设培训广告联盟app推广
  • 财政部经济建设司网站黑帽seo教程
  • 为网站做seo需要什么软件必应搜索国际版
  • 图片编辑工具免费版网络seo培训
  • 东莞市国外网站建设哪家好信息流优化师是干什么的
  • 湛江自做网站百度推广产品有哪些
  • 网站开发人员叫什么百度官方网站
  • 无锡做网站公司关键词排名优化
  • 网站维护平台现在百度推广有用吗
  • 页面设计代码怎么写搜索引擎优化员简历
  • 南昌做网站的灰色关键词怎么做排名
  • 河北公司网站制作设计信息流广告加盟代理
  • 创作网站义乌百度广告公司
  • 做签证网站昆明排名优化
  • 贸易类文章网站百度搜索使用方法
  • 汕头做网站公司什么是seo优化?
  • 网站备案之前需要建好网站吗网络宣传方式有哪些
  • 舟山公司做网站品牌营销策划书
  • 常州网站建设代理商seo是什么岗位简称
  • 上海网站开发技术最好公司电话网站推广的方法和途径
  • wordpress 如何用pdf网站seo优化方案项目策划书
  • 网页编辑器安卓版福州seo推广
  • 给自己做网站广告推广网站
  • 政府网站建设原则淘宝运营培训班学费大概多少
  • 微网站生成app全国疫情一览表
  • 单页网站做cpa长春百度推广公司