博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1321 棋盘问题
阅读量:5213 次
发布时间:2019-06-14

本文共 1610 字,大约阅读时间需要 5 分钟。

棋盘问题

Time Limit: 1000ms
Memory Limit: 10000KB
This problem will be judged on 
PKU. Original ID: 
64-bit integer IO format: %lld      Java class name: Main
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放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

21

Source

Author

蔡错@pku
 
解题:好久没做题,先让我水几天。。。
1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define LL long long13 #define INF 0x3f3f3f3f14 #define pii pair
15 16 using namespace std;17 const int maxn = 10;18 char table[maxn][maxn];19 int n,k,sum;20 bool vis[maxn];21 void dfs(int cur,int cnt){22 if(cnt == k){23 ++sum;24 return;25 }26 if(cur >= n || n-cur < k-cnt) return;27 for(int i = 0; i < n; ++i){28 if(vis[i]||table[cur][i] == '.') continue;29 vis[i] = true;30 dfs(cur+1,cnt+1);31 vis[i] = false;32 }33 dfs(cur+1,cnt);34 }35 int main(){36 while(scanf("%d %d",&n,&k),~n || ~k){37 memset(table,'\0',sizeof(table));38 memset(vis,false,sizeof(vis));39 for(int i = sum = 0; i < n; ++i)40 scanf("%s",table[i]);41 dfs(0,0);42 printf("%d\n",sum);43 }44 return 0;45 }
View Code

 

转载于:https://www.cnblogs.com/crackpotisback/p/4236092.html

你可能感兴趣的文章
jQuery总结第一天
查看>>
Java -- Swing 组件使用
查看>>
Software--Architecture--DesignPattern IoC, Factory Method, Source Locator
查看>>
poj1936---subsequence(判断子串)
查看>>
黑马程序员_Java基础枚举类型
查看>>
【redis4 】
查看>>
[ python ] 练习作业 - 2
查看>>
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
HDU-1242-Rescue
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
Eclipse中如何开启断言(Assert),方法有二
查看>>
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
查看>>
压缩图片 待验证
查看>>
冲刺进度条7
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
MongoDB的数据库、集合的基本操作
查看>>
JS 多种变量定义
查看>>
redis可执行文件说明
查看>>
ajax向后台传递数组
查看>>
剑指offer系列14:包含min函数的栈
查看>>