题解1235. 洪水 (Standard IO)
Description
全的。
森林的地图由R行C列组成,空白区域用点“.”表示,洪水的区域用“*”表示,而
岩石用“X”表示,另画家的住所用“D”表示,画家用“S”表示。
有以下几点需要说明:
1、 每一分钟画家能向四个方向移动一格(上、下、左、右)
2、 每一分钟洪水能蔓延到四个方向的相邻格子(空白区域)
3、 洪水和画家都不能通过岩石区域
4、 画家不能通过洪水区域(同时也不行,即画家不能移到某个格子,该格子在画家达到的同时被洪水蔓延到了,这也是不允许的)
5、 洪水蔓不到画家的住所。
给你森林的地图,编写程序输出最少需要花费多长时间才能从开始的位置赶回家中。
Input
接下来R行每行包含C个字符(“.”、“*”、“X”、“D”或“S”)。地图保证只有一个“D”和一个“S”。
Output
Sample Input
输入1:
3 3
D.*
...
.S. 输入2:
3 3
D.*
...
..S 输入3:
3 6
D...*.
.X.X..
....S.
Sample Output
输出1:
3 输出2:
KAKTUS 输出3:
6
这道题主要考的是bfs和预处理,我们模拟一下就能过,因为它的数据太蒻。
首先,我们读入整个地图,不断地扫描整个地图,然后每一次发现岩浆就将它合法扩散。
然后我们处理人,这就要跑一遍bfs了,找到就输出,不然就输出KAKTUS。
下面上代码:
#include<iostream>
#include<cstdio>
using namespace std;
int tim,n,m,last;
bool p;
char mp[][][];
void before(){
for(int i=;i<=;i++){
for(int j=;j<=n;j++){
for(int k=;k<=m;k++){
if(mp[j][k][i-]=='*'){
if(mp[j+][k][i]!='D'&&mp[j+][k][i]!='X') mp[j+][k][i]='*';
if(mp[j][k+][i]!='D'&&mp[j][k+][i]!='X') mp[j][k+][i]='*';
if(mp[j-][k][i]!='D'&&mp[j-][k][i]!='X') mp[j-][k][i]='*';
if(mp[j][k-][i]!='D'&&mp[j][k-][i]!='X') mp[j][k-][i]='*';
}
}
}
}
}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
cin>>mp[i][j][];
for(int k=;k<=;k++){
mp[i][j][k]=mp[i][j][k-];
}
}
}
before();
while(tim<=){
tim++;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(mp[i][j][tim-]=='S'){
if(mp[i+][j][tim]=='D'){
cout<<tim;
return ;
}
if(mp[i][j+][tim]=='D'){
cout<<tim;
return ;
}
if(mp[i-][j][tim]=='D'){
cout<<tim;
return ;
}
if(mp[i][j-][tim]=='D'){
cout<<tim;
return ;
}
if(mp[i+][j][tim]=='.') mp[i+][j][tim]='S';
if(mp[i][j+][tim]=='.') mp[i][j+][tim]='S';
if(mp[i-][j][tim]=='.') mp[i-][j][tim]='S';
if(mp[i][j-][tim]=='.') mp[i][j-][tim]='S';
}
}
}
}
cout<<"KAKTUS";
}
谢谢阅读
题解1235. 洪水 (Standard IO)的更多相关文章
- JZOJ 5326. LCA 的统计 (Standard IO)
5326. LCA 的统计 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description Input Output S ...
- JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)
5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...
- JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)
5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...
- JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)
5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...
- JZOJ 5257. 小X的佛光 (Standard IO)
5257. 小X的佛光 (Standard IO) Time Limits: 2000 ms Memory Limits: 524288 KB Description Input Output Sam ...
- JZOJ 5258. 友好数对 (Standard IO)
5258. 友好数对 (Standard IO) Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description I ...
- JZOJ 1349. 最大公约数 (Standard IO)
1349. 最大公约数 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 小菜的妹妹小诗就要读小学了!正所谓 ...
- JZOJ 1736. 扑克游戏 (Standard IO)
1736. 扑克游戏 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 有一棵无穷大的满二叉树,根为sta ...
- JZOJ 1776. 经济编码 (Standard IO)
1776. 经济编码 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 为降低资料储存的空间或增加资料传送 ...
随机推荐
- dfs(枚举)
http://codeforces.com/gym/100989/problem/L L. Plus or Minus (A) time limit per test 1.0 s memory lim ...
- python random模块导入及用法
random是程序随机数,很多地方用到,验证码,图片上传的图片名称等,下面说说python random模块导入及用法 1,模块导入 import random 2,random用法 random.r ...
- Hdu 4578 Transformation (线段树 分类分析)
Transformation Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others)T ...
- [TabControl] TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来
看下效果吧<ignore_js_op> 下面是一个公共的添加方法看代码 [C#] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 1 ...
- svn登录问题
转载自: https://www.cnblogs.com/WQX-work24/p/9790260.html 版权归该作者所有.
- 把int 类型转化为varchar并且去掉小数点同时以千分号‘,’分割
把int 类型转化为money 类型,再转化为varchar,去掉小数点同时以千分号‘,’分割. select '$' + left(Convert(VARCHAR, cast(10000 as mo ...
- JS中数组和字符串方法的简单整理
一.数组: 数组的基本方法: 1.增:arr.unshift() /push() 前增/后增 2.删:arr.shift() /pop ...
- TP中如何去掉index.php
使用过TP的同学都知道,在URL始终会有index .php 我们如何才能够去掉呢? 1. 确认httpd.conf配置文件中加载了mod_rewrite.so模块 2. AllowOverride ...
- Anaconda 安装及Python 多版本间切换
安装 Anaconda 安装anaconda 安装较为简单,这里参考官方文档:https://docs.continuum.io/anaconda/install/linux.html 在文件目录下执 ...
- java httpclient basic授权
import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpS ...