题意: 有两个人在一个9*9的棋盘里下棋,A 是的棋子为x , B为 o  ,“.”  的意思为空。 问 A的下一个 能否将 B 的棋子杀死, (跟围棋差不多)。

解题大意: dfs  判联通块的周围是否只有 一个 ‘ . ’.

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char ma[10][10];
int vis[10][10],num,cnt;
int mx[4] = {0,0,1,-1};
int my[4] = {1,-1,0,0};
void dfs(int x,int y)
{//printf("%d %d\n",x,y);vis[x][y] = cnt;for(int i = 0; i < 4; i++){int rx = x + mx[i];int ry = y + my[i];if(rx < 0 || rx > 8 || ry < 0 || ry > 8)continue;if(ma[rx][ry] == 'x')continue;if(vis[rx][ry] == cnt)                             <span style="color:#ff0000;">//标记vis数组要用cnt,不能用1,因为要考虑多个白棋周围相同的空白点</span>continue;if(ma[rx][ry] == '.'){num++;vis[rx][ry] = cnt;}if(ma[rx][ry] == 'o')dfs(rx,ry);}
}
int main()
{int n,m,t,C = 1;scanf("%d",&t);while(t--){for(int i = 0; i < 9; i++)scanf("%s",ma[i]);int flag = 0;cnt = 0;memset(vis,0,sizeof(vis));for(int i = 0; i < 9; i++)for(int j = 0; j < 9; j++){if(ma[i][j] == 'o' && !vis[i][j]){vis[i][j] = 1;num = 0;cnt++;dfs(i,j);if(num == 1){flag = 1;//printf("%d %d\n",i,j);}}}if(flag)printf("Case #%d: Can kill in one move!!!\n",C++);elseprintf("Case #%d: Can not kill in one move!!!\n",C++);}
}

hdu 5546 Ancient Go(★)相关推荐

  1. HDU 1520 Anniversary party(树形dp)

    HDU 1520 Anniversary party(树形dp) 树形dp第一题!!! 题意很清晰,思路也很明确.很容易找到根节点,即最大的boss,通过根节点向下dp. 状态转移方程: int to ...

  2. HDU 4548 美素数(打表)

    HDU  4548  美素数(打表)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88159#problem/H 题目 ...

  3. 【HDU 5765】Bonds(进制运算妙用)

    [HDU 5765]Bonds(进制运算妙用) Bonds Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K ...

  4. HDU 1560 DNA sequence(DNA序列)

    HDU 1560 DNA sequence(DNA序列) Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K  ...

  5. HDU 3016 Man Down (线段树+dp)

    HDU 3016 Man Down (线段树+dp) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  6. HDU 6400 Parentheses Matrix(构造)

    题意:给你r,c求一个矩阵让它的行和列的匹配度最大,匹配就要一行一列全都匹配 每个位置只能是左括号或者右括号, "()"这算一个匹配,那么"(())",&quo ...

  7. getElementsByTagName()获取某些元素

    使用getElementsByTagName()方法可以返回带有指定标签名的对象集合 doucument.getElementsByTagName("标签名"): 注意: 1.因为 ...

  8. python 替换字符串的方法replace()、正则re.sub()

    一.replace()函数 1用字符串本身的replace方法: a = 'hello word' b = a.replace('word','python') print b 1 2 3 二.re. ...

  9. Scrapy 学习笔记(-)

    Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

最新文章

  1. ES6中export及export default的区别
  2. python开发面试题目_Python测试开发面试笔试题
  3. Matlab中varargin函数
  4. 信息系统项目管理师-论文写作基本介绍笔记
  5. 数据库连接配置tomcat_Tomcat到Wildfly:配置数据库连接
  6. 关于sap的日期,时间
  7. vs.net 2005中引用webservice的简单方法
  8. sku组合查询算法探索
  9. could not insert:
  10. 第二十九篇、UICollectionView瀑布流
  11. 【信号与系统】复习总结笔记
  12. PD源码阅读系列:PD节点启动
  13. 定了,6大领域93个开源任务,阿里开源导师带你参与中科院开源之夏2022
  14. 抖音直播流量怎么来?四大渠道告诉你
  15. 用 VMware 12 Player 安装Ubuntu 14.04.5 分区时提示“没有定义根文件系统,请回到分区菜单以修正此错误”
  16. 数学速算法_简单易学的速算法,贴墙上背,孩子次次数学100分!
  17. JavaScript 导出 table 为 Excel 表格
  18. 如何使用Windows Live Writer远程发布到WordPress
  19. xcode 使用xparse,xccov解析xcresult文件,查看代码覆盖率,导出日志,提取附件等
  20. c调用lua脚本语言入门,Lua脚本语言入门及魔兽争霸中的Lua函数调用

热门文章

  1. django 国际化支持 I18N
  2. defer函数的实践和原理
  3. 微信小程序 - weui的引入使用方法
  4. Java中hashCode的作用
  5. 节省企业开支,轻轻松松自动化测试
  6. android 按钮绚丽样式,Android实现绚丽的旋转菜单
  7. 大文件压缩包处理解决方案,防止内存溢出
  8. svn revert详解
  9. 怎样固定Excel表头
  10. 简单了解taint 污点追踪