hrbust 1283 又见皇后
来源:互联网 发布:plc编程梯形图实例 编辑:程序博客网 时间:2024/05/16 14:44
又见皇后Time Limit: 3000 MSMemory Limit: 65536 KTotal Submit: 122(33 users)Total Accepted: 45(25 users)Rating: Special Judge: NoDescription国际象棋中,皇后能攻击同一横线、同一竖线、同一斜线(45度)的敌人。
每个答案占一行。
Sample Input4
数据给的小/。。
众所周知,有一个非常著名的算法问题,是求在一个n×n的国际象棋棋盘中最多能摆放多少个皇后,使其不能相互攻击。
今天我们暂且不要让问题如此理想化。假设棋盘上有一些障碍物,皇后不能摆在障碍物上,同时也不能穿过障碍物攻击别人。在此条件之下,棋盘上最多又能放多少个皇后?
图中黑色方块表示障碍物,圆点表示皇后
图2是一种最优摆法;图4、图5属于违规摆法
Input输入包含多组数据。每组数据的第一行是一个整数n(1≤n≤8),表示棋盘的边长。之后的n行将描述棋盘,其中’X’表示该单元格有障碍物,’.’则表示没有。
n=0表示输入结束。
Output对于每组数据,请输出一个整数表示最多能在棋盘上放几个皇后,使它们相互不能攻击。每个答案占一行。
Sample Input4
.X..
...X
XXX.
..X.
2
XX
.X
3
.X.
X.X
.X.
0
Sample Output41
2
数据给的小/。。
时间也多。。
直接暴力跑。。
因为有阻隔点所以一行可能存在不止一个点。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 10int res;int n;int m;char maps[N][N];int vis[N][N];int judge(int x,int y){ for(int i=y-1; i>=0&&maps[x][i]=='.'; i--) if(vis[x][i]==1) return 0; for(int i=x-1; i>=0&&maps[i][y]=='.'; i--) { if(vis[i][y]==1) return 0; } for(int i=x-1,j=y-1; i>=0&&maps[i][j]=='.'&&j>=0; j--,i--) { if(vis[i][j]==1) return 0; } for(int i=x-1,j=y+1; i>=0&&maps[i][j]=='.'&&j<n; j++,i--) { if(vis[i][j]==1) return 0; } return 1;}void dfs(int pos,int tmp){ if(pos>=m) return ; if(res<tmp) { res=tmp; } pos++; dfs(pos,tmp); if(maps[pos/n][pos%n]=='.'&&judge(pos/n,pos%n)) { vis[pos/n][pos%n]=1; dfs(pos,tmp+1); vis[pos/n][pos%n]=0; } return ;}int main(){ while(scanf("%d",&n),n) { res=0; memset(vis,0,sizeof(vis)); for(int i=0; i<n; i++) { scanf("%s",maps[i]); } m = n*n; if(maps[0][0]=='.') { vis[0][0]=1; dfs(0,1); vis[0][0]=0; }dfs(0,0); printf("%d\n",res); }}
阅读全文
0 0
- hrbust 1283 又见皇后
- hrbust 1283 又见皇后【dfs】
- 又见八皇后
- 又见皇后!!!
- 又见皇后(暴力)
- hrbust 2190 又是Fibonacci
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Hrbust
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Java笔记(3)
- 让机器读懂用户——大数据中的用户画像
- MySQL数据库索引的基础操作
- 移动app测试中出现bug漏测的原因分析
- 第一周9.13
- hrbust 1283 又见皇后
- 单例模式必须具备的3个元素
- npm start 显示 fetch Metadata: sill map to registry 长时间无响应
- SugarRecord的使用和源码分析
- Mariadb 10.2 JSON
- 数据结构初步总结
- 如何快速转载 CSDN 博客
- 基于大数据的中文舆情分析
- JavaScript基础之操作文件