HPUoj问题 J: KACA的围棋入门(DFS)
问题 J: KACA的围棋入门
时间限制: 1 Sec 内存限制: 128 MB
提交: - 解决: -
题目描述
KACA从小就有一个成为围棋高手的梦想,然而他对围棋的棋路一窍不通。
为了体验围棋的乐趣,他在一个棋盘上摆了若干个白字和黑子,他规定黑子不能吃白子,但是白子可以吃黑子。也就是说,若棋盘上有某些黑子没有"气"(被白子完全围住或因为达到边界),则应当把黑子拿掉。反之若某些白子没有"气"(被黑子完全围住或达到边界),则不需要拿掉。
现在以'#'代表白子,以'@'代表黑子,以'.'代表空棋盘,KACA想要知道按照这种规则处理之后的棋盘是什么状态。
输入
多组测试数据。
第一行是两个整数n,m(1 <= n, m <= 20),分别代表棋盘的行数和列数。
下面有一个n*m的矩阵代表棋盘,其中'#'代表白子,'@'代表黑子,'.'代表空棋盘。
输出
对于每组数据先输出一行"Case *:"代表第*组测试。
然后输出一个n*m的矩阵代表处理之后的棋盘。
样例输入
3 3 .#. #@# .#. 4 3 .#. #@# #@# .#. 2 2 @@ @@
样例输出
Case 1: .#. #.# .#. Case 2: .#. #.# #.# .#. Case 3: .. ..
#include<stdio.h>
#include<string.h>
int dx[4] = {-1,0,0,1};
int dy[4] = {0,1,-1,0};
int n,m;
char str[105][105];
void dfs(int x,int y)
{for(int i = 0; i < 4; ++i){ int nx = x + dx[i], ny = y + dy[i];if(0<=nx&&nx<n&&0<=ny&&ny<m&&str[nx][ny]=='@'){str[nx][ny] = '~';dfs(nx,ny);}}return ;
}
int main()
{int k = 0;while(~scanf("%d%d",&n,&m)){getchar();for(int i = 0;i < n;i ++){ scanf("%s",&str[i]);}for(int i = 0;i < n;i ++){for(int j = 0;j < m;j ++){if(str[i][j]=='.'){dfs(i,j);}}}printf("Case %d:\n",++k);for(int i = 0;i < n;i ++){for(int j = 0;j < m;j++){if(str[i][j]=='~')printf("@");else if(str[i][j]=='@')printf(".");else{printf("%c",str[i][j]);} }printf("\n");}memset(str,0,sizeof(str));}
return 0;}
HPUoj问题 J: KACA的围棋入门(DFS)相关推荐
- hpu 1087 KACA的围棋入门
问题 J: KACA的围棋入门 时间限制: 1 Sec 内存限制: 128 MB 题目描述 KACA从小就有一个成为围棋高手的梦想,然而他对围棋的棋路一窍不通. 为了体验围棋的乐趣,他在一个棋盘上摆了 ...
- HDU-6341 Problem J. Let Sudoku Rotate(dfs 剪枝)
题目:有一个4*4*4*4的数独,每一横每一竖每一个小方块中都无重复的字母,即都为0-9,A-F..有一个已经填好的数独,若干个4*4的方块被逆时针拧转了若干次,问拧转回来至少需要多少次. 分析:很明 ...
- 给小铄做的围棋入门思道导图
给小铄同学做的围棋入门思维导图.有需要的朋友可以参考参考:)
- 围棋提子后的子放哪_围棋入门知识点:围棋规则 —— 禁入点
对于围棋初学者而言,围棋规则十分简单,但有些场景却怎么也弄不明白.禁入点的判断,就是基础规则中最有代表性的一个例子.如图所示: 图1 图2 ...
- 围棋入门(01)基础知识
让我们一起学习围棋,下面的都是干货,没有废话. 一.简单认识 1.棋子 棋子分黑白两色.多为扁圆形(也有双面都突起的棋子).黑白子各自都是180个左右.棋子呈圆形.中国一般使用一面平.一面凸的棋子,日 ...
- DFS——组合与排列
引子 正题 排列 生成n维向量vector 分析 思考 全排列 分析 生成下一个排列next_permutation 生成可重集的全排列 分析 Part组合 枚举组合Combination 位向量法 ...
- ACM里的期望和概率问题 从入门到精(入)通(土)
ACM里的期望和概率问题的个人训练和总结 起因:在2020年一场HDU多校赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=68 ...
- java 围棋_Java.awt实现一个简单的围棋
目录 0.前言 我小时候学过一段时间的围棋,可惜脑子不好使,是个臭棋篓子,到现在也有十多年的时间没有下过棋了,但是近几年围棋AI的出现,又让我重新关注了围棋 围棋真的很有意思,千变万化,有人简明的围空 ...
- LeetCode《算法入门》刷题笔记(31 题全)
LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...
最新文章
- 用python画简单的动物-世上最慢“动物”之一,为啥程序员却很爱它?
- 51 Nod 1509 加长棒(巧妙的隔板法计数)
- 部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)
- sqlite事务模型、性能优化tips、常见误区
- 5.Java 面试题整理(JDBC ,JDO 方面)
- OpenShift 4 - 使用定制的Grafana和Dashboard
- 五步法建设你的数据中台
- SQLServer · 特性分析 · SQL Server 2012的分析函数未必都理解透了(2)
- PHP获取数组中重复数据
- MATLAB计算13195的约数,最大约数算法 | Delphi论坛 | Delphi Forum - We Delphi
- android 拍照和选择相册图片剪切
- uniapp——头条小程序picker变黑色
- matlab画图选项表+标记点大小调整+线段图如何绘制
- Aliyun ECS 配置
- 中国云计算大会第十载,这一次只谈实体经济
- 基于Java技术的Web环境下分布式数据库互操作性的实现
- 一带一红网红基地推出O2O网红直播过年模式
- 人一般长到几岁才会停止长高?
- w3school css6,w3School jquery学习 选择器
- WMCTF 2021 pwn dy_maze writeup