问题 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)相关推荐

  1. hpu 1087 KACA的围棋入门

    问题 J: KACA的围棋入门 时间限制: 1 Sec 内存限制: 128 MB 题目描述 KACA从小就有一个成为围棋高手的梦想,然而他对围棋的棋路一窍不通. 为了体验围棋的乐趣,他在一个棋盘上摆了 ...

  2. HDU-6341 Problem J. Let Sudoku Rotate(dfs 剪枝)

    题目:有一个4*4*4*4的数独,每一横每一竖每一个小方块中都无重复的字母,即都为0-9,A-F..有一个已经填好的数独,若干个4*4的方块被逆时针拧转了若干次,问拧转回来至少需要多少次. 分析:很明 ...

  3. 给小铄做的围棋入门思道导图

    给小铄同学做的围棋入门思维导图.有需要的朋友可以参考参考:)

  4. 围棋提子后的子放哪_围棋入门知识点:围棋规则 —— 禁入点

    对于围棋初学者而言,围棋规则十分简单,但有些场景却怎么也弄不明白.禁入点的判断,就是基础规则中最有代表性的一个例子.如图所示:      图1                    图2        ...

  5. 围棋入门(01)基础知识

    让我们一起学习围棋,下面的都是干货,没有废话. 一.简单认识 1.棋子 棋子分黑白两色.多为扁圆形(也有双面都突起的棋子).黑白子各自都是180个左右.棋子呈圆形.中国一般使用一面平.一面凸的棋子,日 ...

  6. DFS——组合与排列

    引子 正题 排列 生成n维向量vector 分析 思考 全排列 分析 生成下一个排列next_permutation 生成可重集的全排列 分析 Part组合 枚举组合Combination 位向量法 ...

  7. ACM里的期望和概率问题 从入门到精(入)通(土)

    ACM里的期望和概率问题的个人训练和总结 起因:在2020年一场HDU多校赛上.有这么一题没做出来. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=68 ...

  8. java 围棋_Java.awt实现一个简单的围棋

    目录 0.前言 我小时候学过一段时间的围棋,可惜脑子不好使,是个臭棋篓子,到现在也有十多年的时间没有下过棋了,但是近几年围棋AI的出现,又让我重新关注了围棋 围棋真的很有意思,千变万化,有人简明的围空 ...

  9. LeetCode《算法入门》刷题笔记(31 题全)

    LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...

最新文章

  1. 用python画简单的动物-世上最慢“动物”之一,为啥程序员却很爱它?
  2. 51 Nod 1509 加长棒(巧妙的隔板法计数)
  3. 部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)
  4. sqlite事务模型、性能优化tips、常见误区
  5. 5.Java 面试题整理(JDBC ,JDO 方面)
  6. OpenShift 4 - 使用定制的Grafana和Dashboard
  7. 五步法建设你的数据中台
  8. SQLServer · 特性分析 · SQL Server 2012的分析函数未必都理解透了(2)
  9. PHP获取数组中重复数据
  10. MATLAB计算13195的约数,最大约数算法 | Delphi论坛 | Delphi Forum - We Delphi
  11. android 拍照和选择相册图片剪切
  12. uniapp——头条小程序picker变黑色
  13. matlab画图选项表+标记点大小调整+线段图如何绘制
  14. Aliyun ECS 配置
  15. 中国云计算大会第十载,这一次只谈实体经济
  16. 基于Java技术的Web环境下分布式数据库互操作性的实现
  17. 一带一红网红基地推出O2O网红直播过年模式
  18. 人一般长到几岁才会停止长高?
  19. w3school css6,w3School jquery学习 选择器
  20. WMCTF 2021 pwn dy_maze writeup

热门文章

  1. 系统设计(四) 设计Instagram
  2. JDK动态代理的使用和源码解析(jdk1.7)
  3. 华为防火墙NAT配置与策略管理
  4. mysql安装教程(本人亲自测过能用)
  5. 苹果的屏幕录制在哪里_录屏在哪里设置
  6. 请描述下你对 Vue 生命周期的理解?在 created 和 mounted 这两个生命周期中请求数据有什么区别呢?
  7. 【题解】P1396 营救-C++
  8. mysql批量导入sql文件
  9. 玩吃鸡用什么蓝牙耳机比较好?吃鸡游戏蓝牙耳机推荐
  10. 实体店如何借助抖音去推广,实体店如何玩转抖音