题解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 为降低资料储存的空间或增加资料传送 ...
随机推荐
- java_第一年_JDBC(5)
事务概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功: 开始事务:start transaction 提交事务:commit 回滚事务:rollback 事务的四大特 ...
- 洛谷 - P2146 - 软件包管理器 - 重链剖分
https://www.luogu.org/problem/P2146 继续重链剖分. 这里好像很好懂,每次安装软件就区间改值赋值整个路径是1,然后比较前后的sum值变化就可以了.事实上后一次的sum ...
- Ubuntu14 vsftp 的安装和虚拟用户配置
一.介绍 FTP 是 File Transfer Protocol (文件传输协议)的缩写 ,在 Unix/Linux 系统中常用的免费 FTP 服务器软件主要是 VSFTP,vsftp的官方地址:h ...
- spark cli
Spark SQL CLI Spark1.1增加了Spark SQL CLI和ThriftServer SparkSQL CLI配置 1.创建并配置hive-site.xml 在运行Spark SQL ...
- Linux--shell grep与正则表达式--04
一.grep程序 Linux下有文本处理三剑客:grep.sed.awk grep:文本 行过滤工具 sed:文本 行编辑器(流编辑器) awk:报告生成器(做文本输出格式化) 1.grep grep ...
- Express 中配置使用 art-template模板引擎
art-template 官网 https://aui.github.io/art-template/ 安装: npm install --save art-template npm install ...
- Linux架构之Nginx 负载均衡会话保持
案例No.50:Nginx负载均衡会话保持 前期准备环境 web01.web02 (web01.web02.db01.nfs01都要优化基本源)[root@web01 ~]# vim /etc/yum ...
- leetcode 实现-168.Excel表列名称
168.Excel表列名称 描述 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如, 1 -> A 2 -> B 3 -> C … 26 -> Z 27 -&g ...
- CF1009F Dominant Indices 长链剖分
题目传送门 https://codeforces.com/contest/1009/problem/F 题解 长链剖分的板子吧. 令 \(dp[x][i]\) 表示 \(x\) 的子树中的深度为 \( ...
- 《Webkit技术内幕》之页面渲染过程
文章同步到github<Webkit技术内幕>之页面渲染过程 最近拜读了传说中的<Webkit技术内幕>一书,有很大收获,尤其是对页面渲染有了较深的认识.由于功力有限,而且书中 ...