ZZULIoj 1908 小火山的围棋梦想
Description
Input
Output
Sample Input
2
3 3
***
*.*
***
4 4
.*..
*.*.
*.*.
.*..
Sample Output
Case 1:
***
***
***
Case 2:
.*..
***.
***.
.*.. 先记录'.'的坐标,然后对第一个'.'的坐标进行深搜,搜的'.'都标记若搜到点没有在最外边的说明这些点一定被'*'包围,全部变成'*'.
#include<cstdio>
#include<string.h>
int dx[]={-,,,};
int dy[]={,,-,};
char map[][];
int flag[][];
int n,m,good;
struct stu
{
int x,y;
}key[];
void f(int xx,int yy)
{
int nx,ny,i,j;
if(xx== || xx == n- || yy == || yy == m-) //判断是否是外围的点
{
good=;
}
for(i = ; i < ; i++)
{
nx=xx+dx[i];
ny=yy+dy[i];
if(nx >= && ny >= && nx < n && ny < m && flag[nx][ny] == && map[nx][ny] == '.')
{
flag[nx][ny]=;
f(nx,ny);
}
}
}
int main()
{
int t,s=; scanf("%d",&t); while(t--)
{
int i,j,k; int num=; scanf("%d %d",&n,&m); memset(map,'.',sizeof(map)); for(i = ; i < n ; i++)
{
scanf("%s",map[i]);
for(j = ; j < m ; j++)
{
if(map[i][j] == '.')
{
key[++num].x=i;
key[num].y=j;
} }
}
for(i = ; i <= num ; i++)
{
memset(flag,,sizeof(flag)); //每次都要清零 good=; flag[key[i].x][key[i].y]=; if(map[key[i].x][key[i].y] == '.') f(key[i].x,key[i].y); if(good == ) //good=0说明没有最外围的点
{
for(k = ; k < n ; k++)
{
for(j = ; j < m ; j++)
{
if(flag[k][j] == )
map[k][j]='*';
}
}
}
}
printf("Case %d:\n",++s); for(i = ; i < n ; i++)
{
for(j = ; j < m ; j++)
{
printf("%c",map[i][j]);
} printf("\n");
}
}
}
ZZULIoj 1908 小火山的围棋梦想的更多相关文章
- Problem H: 小火山的围棋梦想 多校训练2(小火山专场)
题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1908 题意:如果'.'被'*'围起来,就把'.'变为'*'. 分析:如果是'*'直接输出, ...
- ZZULIoj 1907 小火山的宝藏收益
Description 进去宝藏后, 小火山发现宝藏有N个房间,且这n个房间通过N-1道门联通. 每一个房间都有一个价值为Ai的宝藏, 但是每一个房间也都存在一个机关.如果小火山取走了这 ...
- ZZULIoj 1912 小火山的爱情密码
Description 小火山获得了一个字符串,然而大火山让小火山从里面截取一段字符串,并且让小火山截取的字符串满足一些字符达到一定数量. 小火山觉得很容易,但是他想要知道他至少得截取多长的字符串. ...
- ZZULIoj 1913: 小火山的计算能力
Description 别人说小火山的计算能力不行,小火山很生气,于是他想证明自己,现在有一个表达式,他想计算出来. Input 首先是一个t(1<=20)表示测试组数.然后一个表达式,表达式长 ...
- zzulioj 1907小火山的宝藏交易(dfs记忆化搜索)
#include <stdio.h> #include <algorithm> #include <string.h> #include <vector> ...
- zzuliOJ 1904小火山的股票交易;
#include <stdio.h> #include <algorithm> #include <string.h> using namespace std; # ...
- (zzuli)1907 小火山的宝藏收益
Description 进去宝藏后, 小火山发现宝藏有N个房间,且这n个房间通过N-1道门联通. 每一个房间都有一个价值为Ai的宝藏, 但是每一个房间也都存在一个机关.如果小火山取走了这个房间的宝藏, ...
- zzuli 1907: 小火山的宝藏收益 邻接表+DFS
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 113 Solved: 24 SubmitStatusWeb Board Description ...
- 微信小程序,前端大梦想(六)
微信小程序,前端大梦想(六) 微信小程序之联合百度API实现定位 定位功能对于我们都不陌生,在移动端的应用中更是不可或缺的功能,小程序中也提供了对应的API帮助我们完成定位的实现,但是目前小程序的定位 ...
随机推荐
- 跟我一起玩Win32开发(17):启动和结束进程
这里我再次说明一下,我不知道为什么,现在的人那么喜欢走极端,估计是价值观都“升级”了的缘故吧. 我撰写这一系列Win32相关的文章,并不是叫大家一定要用Win32去开发项目,仅仅是给大家了解一下,Wi ...
- c++ 语法解析
大小 size()是取字符串长度的,跟length()用法相同 size_t其实是一种类型,类似于无符号整形(unsignted int).可以理解成unsignted int size,当unsig ...
- Qt之对话框QDialog
这一节主要讲述对话框类,先讲述两种不同类型的对话框,再介绍Qt提供的几个标准对话框.对应本节的内容,可以在帮助索引中查看 QDialog 和 Dialog Windows 关键字. 一.模态和非模态对 ...
- Excel 宏练习
任务描述: 利用 Excel 绘制函数图像 f(x)=x^2/3+0.9*(3.3-x^2)^1/2*sin(a*x),并通过按钮事件来刷新图像. 问题分析: 可以参考类似 Matlab 绘图的方式, ...
- .net服务端生成二维码
mvc4 net4.0 1.引用附件的DLL文件 2.两个函数即可 #region 生成二维码 public ActionResult getQrCode() { using (var ms = ...
- 伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件
开发环境:citymaker 7(以下简称cm),jquery,easyui 1.4(界面),visual studio 2012(没有vs,不部署到IIS也行,html文件在本地目录双击打开可用) ...
- Sql Server RowNumber和表变量分页性能优化小计
直接让代码了,对比看看就了解了 当然,这种情况比较适合提取字段较多的情况,要酌情而定 性能较差的: WITH #temp AS ( ...
- 借助tween.js小球沿div四边跑的动画效果
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- sql格式化工具
桌面版: SQLInform: http://www.sqlinform.com/download_free_desktop_sw.html 在线格式化: http://www.dpriver.com ...
- (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二
http://blog.csdn.net/yerenyuan_pku/article/details/52894958 前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Str ...