E - 白银 CSU - 1726: 你经历过绝望吗?两次! 搜索
E - 白银
CSU - 1726
4月16日,日本熊本地区强震后,受灾严重的阿苏市一养猪场倒塌,幸运的是,猪圈里很多头猪依然坚强存活。当地15名消防员耗时一天解救围困的“猪坚强”。不过与在废墟中靠吃木炭饮雨水存活36天的中国汶川“猪坚强”相比,熊本的猪可没那么幸运,因为它们最终还是没能逃过被送往屠宰场的命运。
我们假设“猪坚强”被困在一个N*M的废墟中,其中“@”表示“猪坚强”的位置,“.”表示可以直接通过的空地,“#”表示不能拆毁的障碍物,“*”表示可以拆毁的障碍物,那么请问消防员至少要拆毁多少个障碍物,才能从废墟中救出“猪坚强”送往屠宰场?(当“猪坚强”通过空地或被拆毁的障碍物移动到废墟边缘时,视作被救出废墟)
Input
多组数据,第一行有一个整数T,表示有T组数据。(T<=100)
以下每组数据第一行有两个整数N和M。(1<=N,M<=100)
接着N行,每行有一个长度为M的字符串。
Output
一个整数,为最少拆毁的障碍物数量,如果不能逃离废墟,输出-1。
Sample Input
3 3 3 ### #@* *** 3 4 #### #@.* **.* 3 3 .#. #@# .#.
Sample Output
1 0 -1
Hint
搜索水题,代码不难理解,就不说了
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <algorithm>
#include <math.h>typedef long long LL;
typedef long double LD;
using namespace std;
const int maxn=111;
char ma[maxn][maxn];
int vis[maxn][maxn];
//int f[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
int f[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int N,M,T;
struct node
{int x,y;int step;friend bool operator <(node a,node b){return a.step>b.step;}
};
priority_queue<node>q;
bool OK(int x,int y)
{if(x>=0&&y>=0&&x<N&&y<M)return true;return false;
}
void bfs(node st)
{q.push(st);while(!q.empty()){node t=q.top();q.pop();for(int i=0;i<4;i++){int xx=t.x+f[i][0];int yy=t.y+f[i][1];if(!OK(xx,yy)){printf("%d\n",t.step);return;}if(vis[xx][yy]==0&&ma[xx][yy]!='#'){char ch=ma[xx][yy];if(ch=='*'){q.push((node){xx,yy,t.step+1});vis[xx][yy]=1;}if(ch=='.'){q.push((node){xx,yy,t.step});vis[xx][yy]=1;}}}}printf("-1\n");
}
int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&N,&M);memset(vis,0,sizeof(vis));for(int i=0;i<N;i++)scanf("%s",ma[i]);while(!q.empty())q.pop();for(int i=0;i<N;i++){for(int j=0;j<M;j++){if(ma[i][j]=='@'){bfs((node){i,j,0});break;}}}}return 0;
}
转载于:https://www.cnblogs.com/107acm/p/9428316.html
E - 白银 CSU - 1726: 你经历过绝望吗?两次! 搜索相关推荐
- CSU 1726: 你经历过绝望吗?两次!
题目传送门 平常不是很喜欢用 cin 和 cout 的,但是不知道为什么 scanf 就W了,cin 就 A了 ,应该是数据格式问题吧 代码: #include<cstdio> #incl ...
- CSUOJ 1726 你经历过绝望吗?两次!(BFS + 优先队列)
1726: 你经历过绝望吗?两次! Description 4月16日,日本熊本地区强震后,受灾严重的阿苏市一养猪场倒塌,幸运的是,猪圈里很多头猪依然坚强存活.当地15名消防员耗时一天解救围困的&qu ...
- CSU 1726:你经历过绝望吗?两次! (BFS+优先队列)
你经历过绝望吗?两次! Time limit:1000 ms Memory limit:131072 kB OS:Windows Problem Description 4月16日,日本熊本地区强震后 ...
- CSU 1726-你经历过绝望吗?两次!(BFS+剪枝)
F - 你经历过绝望吗?两次! Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu Subm ...
- 程序员面试快手后感慨:你们经历过绝望吗?三个面试官都是清华的
一名程序员在面试完快手后如此感叹:快手的要求确实高,比阿里难进100倍,三个面试官都是清华的,全是问的acm和算法题. 所谓同行相轻,马上又网友评论:题刷得好不代表解决问题能力强,面试一般考一两个考察 ...
- 编译Spring5.0.x源码之一路坎坷,你经历过绝望吗?
本文来说说在编译spring-springframework-5.0.x的路上,小编我到底经历了什么? 如果正在看文章你,恰好也想要研究spring源码,那么请先做好准备再动手,不然迎来的问题如滔滔江 ...
- csu1726 你经历过绝望吗?两次!
4月16日,日本熊本地区强震后,受灾严重的阿苏市一养猪场倒塌,幸运的是,猪圈里很多头猪依然坚强存活.当地15名消防员耗时一天解救围困的"猪坚强".不过与在废墟中靠吃木炭饮雨水存活3 ...
- 你经历过绝望吗?两次!
2个注意, 一个是优先级重写.利用,里面没有引用,然后是左大于右就排在后面. bool operator<(mynode ne1, mynode ne2) { return ne1.cost & ...
- java新人面试经历_分享近两周以来的真实面试经历
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 过一天,第二家,其实算是第一家真正的面试.北大方正集团,职位就是java后端开发实习生. 到了之后首先笔试,自我感觉做得不太好,后来直接HR过来面试,和我 ...
- 金市良臣:3.9黄金白银今日操作建议黄金何时止跌完成筑底解读
文章摘要:现货黄金交易怎么规避风险减少亏损?现货黄金投资正确入场时机如何把握?新手炒黄金需要知道那些常识?黄金白银TD操作建议,黄金白银如何操作?黄金白银中长线如何布局?黄金白银TD还会涨吗?黄金白银 ...
最新文章
- 2022-2028年中国大气污染防治产业投资分析及前景预测报告
- docker 在容器外执行某个容器内的某个命令
- php抓取新浪微博数据抓取,php利用curl抓取新浪微博内容示例
- Linux中如何使用Htop监控工具?【网络安全】
- Go学习笔记—Go并发基础
- python爬虫从入门到放弃(六)之 BeautifulSoup库的使用
- 栈实现队列(队列实现栈)
- python中统计特征
- [BX]和loop指令06 - 零基础入门学习汇编语言28
- 代理模式———动态代理
- Flume avro client和hdfs sink 完成自定义目录文件收集
- 数据大屏适配解决方案
- java判断百分数_Java 验证前台返回的是不是百分数 在后台用正则表达式验证百分比数据...
- 《AngularJS深度剖析与最佳实践》一2.6 指令
- Imagination领先IP助力国产处理器 从芯片走向解决方案
- 每个人心中都有一艘小白船
- 台积电5nm光刻技术
- 搭建IIS服务器发布ASP网站
- 工业智能网关BL110应用之19:实现三菱 PLC FX2N 接入MQTT Client One云平台
- 优信php面试流程_上海优信智能科技有限公司
热门文章
- Flink kafka source sink 源码解析
- Android反编译与加密(代码混淆)
- 卧槽!华为工程师总结的Java笔记,太优秀了!
- 我给曾经暗恋的高中女同学,用Python实现了她飞机上刷抖音
- Android Multimedia框架总结(二)MediaPlayer框架及播放网络视频案例
- mysql 删除foreign key_MySQL-Foreign Key
- linux内核 list 使用,使用linux 内核中代码之--list
- sigmoid层的输出_keras如何多输入多输出,以及中间层输出
- 带存储功能的计算器是什么样的_19年中级会计考生能不能带计算器考试?今天统一回复!...
- 数据共享是未来?通用福特丰田联手推进自动驾驶标准制定...