2020 GDUT Rating Contest Ⅱ G. Bucket Brigade

该博客介绍了2020 GDUT Rating Contest Ⅱ 中的G. Bucket Brigade问题。题目要求通过牛来搭建桥梁,从着火的谷仓到达湖边,牛只能放在路径上的空地上。文章提到了利用BFS算法求解最少需要的牛的数量。
摘要由CSDN通过智能技术生成

G. Bucket Brigade

链接

题目描述
给一个10*10的图,由’B’、‘R’、‘L’、’.‘构成,分别代指着火的谷仓、石头(无法经过)、湖、与路。现在让牛用肉身从谷仓(B)旁边搭桥到湖(L)旁边(上下左右方向的接触才算),每个牛占一个’.’,求最少需要几头牛。

题目分析
标准的bfs题,求最短距离,用队列进行bfs即可。

代码

#include <bits/stdc++.h>
 
using namespace std;
 
char farm[10][11];
bool visit[10][10];
int dis[10][10];

 //方向向量
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
 
struct point{
	int x;
	int y;
};
 
point lake,barn;
 
int main(){
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			farm[i][j]=getchar();
			if(farm[i][j]=='B')
				barn.x=i,barn.y=j;
			else if(farm[i][j]=='L')
				lake.x=i,lake.y=j;
		}
		getchar();
	}
	//printf("%d %d\n",barn.x,barn.y);
	//printf("%d %d\n",lake.x,lake.y);
	int ans=0;
	queue <point> que;
	que.push(lake);
	visit[lake.x][lake.y]=1;
	while(!que.empty()){
		point t=que.front();
		que.pop();
		for(int i=0;i<4;i++){
			int tx=t.x+dx[i],ty=t.y+dy[i];
			if(visit[tx][ty]||farm[tx][ty]=='R'||tx>9||ty>9||tx<0||ty<0)
				continue;
			else if(tx==barn.x&&ty==barn.y){
				printf("%d\n",dis[t.x][t.y]);
				return 0;
			}
			else{
				visit[tx][ty]=1;
				dis[tx][ty]=dis[t.x][t.y]+1;
				point makepoint={tx,ty};
				//printf("tx=%d,ty=%d,dis[tx][ty]=%d\n",tx,ty,dis[tx][ty]);
				que.push(makepoint);
			}
		}
	}
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值