1217:棋盘问题

简介: 1217:棋盘问题

1217:棋盘问题

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

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

【输入】

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

【输出】

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

【输入样例】

2 1

#.

.#

4 4

...#

..#.

.#..

#...

-1 -1

【输出样例】

2

1

【来源】

No

1. #include<bits/stdc++.h>
2. using namespace std;
3. char c;
4. int n,k,sum;
5. int s[10][10]={0};
6. bool ss[10]={0};
7. void dfs(int a,int b)
8. {
9.  if(b==k){
10.     sum++;
11.     return;
12.   }
13.   for(int i=a;i<=n;i++)
14.     for(int j=1;j<=n;j++)
15.       if((s[i][j]==1)&&(ss[j]==0)){
16.         ss[j]=1;
17.         dfs(i+1,b+1);
18.         ss[j]=0;
19.       } 
20. }
21. int main()
22. {
23.   while((cin>>n>>k)&&!(n==-1&&k==-1)){
24.     sum=0;
25.     memset(s,0,sizeof(s));
26.     for(int i=1;i<=n;i++)
27.       for(int j=1;j<=n;j++){
28.         cin>>c;
29.         if(c=='#') s[i][j]=1;
30.       }
31.     dfs(1,0);
32.     cout<<sum<<endl;
33.   }
34.   return 0;
35. }

 


相关文章
|
前端开发 数据库 数据安全/隐私保护
【项目实战】登录与注册业务的实现(前端+后端+数据库)
【项目实战】登录与注册业务的实现(前端+后端+数据库)
3084 0
【项目实战】登录与注册业务的实现(前端+后端+数据库)
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法
1638 0
|
2月前
|
机器学习/深度学习 存储 并行计算
大模型推理加速技术:FlashAttention原理与实现
本文深入解析大语言模型推理加速的核心技术——FlashAttention。通过分析传统注意力机制的计算瓶颈,详细阐述FlashAttention的IO感知算法设计、前向反向传播实现,以及其在GPU内存层次结构中的优化策略。文章包含完整的CUDA实现示例、性能基准测试和实际部署指南,为开发者提供高效注意力计算的全套解决方案。
421 10
|
开发工具 git
git push报错:The current branch master has no upstream branch
git push报错:The current branch master has no upstream branch
40354 0
git push报错:The current branch master has no upstream branch
|
安全 Linux 测试技术
如何使用Kali Linux进行渗透测试?
如何使用Kali Linux进行渗透测试?
821 0
|
9月前
|
存储 Java 关系型数据库
ssm152家庭财务管理系统设计与实现+jsp(文档+源码)_kaic
本家庭财务管理系统基于现代经济快速发展和信息化技术升级的背景,采用SSM框架、Java语言及Mysql数据库开发。系统旨在帮助用户高效处理大量数据信息,提升财务管理效率,实现数据的整体化、规范化与自动化管理。该系统界面简洁美观,功能布局合理,具备良好的易用性和扩展性,并提供多种安全措施保障数据安全。通过科学化的管理方式,有效减少人工操作失误,提高工作效率。
|
9月前
|
存储 人工智能 固态存储
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
1986 8
|
Linux Python
【Linux】查看目录和更改目录
【Linux】查看目录和更改目录
331 3
|
11月前
|
存储 监控 数据可视化
从繁琐到高效:数字化工具助力HR管理的实际案例
随着数字化转型加速,人力资源管理(HRM)正经历深刻变革。传统纸质记录和手动流程逐渐被数字化工具取代,提升了效率并带来全新管理模式。本文探讨了看板工具、HR管理系统等如何改变传统HRM模式,并重点介绍了板栗看板的独特价值,包括任务可视化、跨部门协作、自定义功能、数据驱动决策及移动端支持,助力企业优化流程、提升效率和员工体验。