博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fire Game
阅读量:6158 次
发布时间:2019-06-21

本文共 1737 字,大约阅读时间需要 5 分钟。

 

这道题说白了,其实就是最短路径问题,果断用宽搜,但是我们这里要注意的是,

这道题是两个起点的宽搜,两个同时搜,而不是分开搜,我本人就是因为这个错误而做了很久的

#include
#include
#include
using namespace std;const int maxn=20;const int inf=0x3f3f3f3f;char a[maxn][maxn];//char b[maxn][maxn];int step[maxn][maxn];int usedtime=111111111;int direction[4][2]={
{
0,1},{
1,0},{
-1,0},{
0,-1}};int column,line; int ans=0; int grasses; int cases=0;struct wo{ int x; int y;};queue
p;int fire(){ int grass=0,time=0; while(p.size()){ struct wo help;//结构体的入队需要结构体才能入队 help=p.front();p.pop();
for(int i=0;i<4;i++){			int x1=help.x+direction[i][0],y1=help.y+direction[i][1];			if(x1<1||x1>line)continue;			if(y1<1||y1>column)continue;			if(a[x1][y1]=='.')continue;			if(step[x1][y1]<=step[help.x][help.y]+1)continue;//满足条件才入队		     step[x1][y1]=step[help.x][help.y]+1;			 wo help1;			 help1.x=x1;help1.y=y1;			 p.push(help1);			 grass++;//计算燃烧的草的个数			 time=max(step[x1][y1],time);//算时间                  }        } if(grass==grasses-2)return time;//看燃烧完没有else return 111111111;}
int main(){ int t; cin>>t; while(t--){ 	usedtime=111111111,grasses=0; 	cin>>line>>column; 	for(int i=1;i<=line;i++){
for(int j=1;j<=column;j++){ 			cin>>a[i][j]; 			if(a[i][j]=='#')grasses++;//计算草的个数		 }	 }  for(int i=1;i<=line;i++){ 	for(int j=1;j<=column;j++){ 		if(a[i][j]=='.')continue;//只从有草的地方开始燃烧 		for(int s=1;s<=line;s++){ 			for(int l=1;l<=column;l++){ 				if(a[s][l]=='.')continue; 				if(l<=column){ 				 while(p.size())p.pop(); 				 if(i!=s||j!=l){ 				 //cout<
<<" "<
<
}			 } 		 }	 }}}cout<<"Case"<<" "<<++cases<<": ";	 if(usedtime!=111111111)	 cout<
<

转载于:https://www.cnblogs.com/c201904xyorz/p/9990803.html

你可能感兴趣的文章
淘宝的几个架构图
查看>>
linux后台运行程序
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
登记申请汇总
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
第一个应用程序HelloWorld
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Java并发编程73道面试题及答案
查看>>
企业级负载平衡简介(转)
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>