蓝桥杯2015年第六届C/C++A组国赛第四题-穿越雷区
2022/2/23 12:21:25
本文主要是介绍蓝桥杯2015年第六届C/C++A组国赛第四题-穿越雷区,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Idea
求最短路径,用bfs解题
code评测地址
AC Code
#include<iostream> #include<cmath> #include<algorithm> #include<queue> using namespace std; #define MAX_SIZE 101 struct node { int x,y; int step; }; int dx[4]={1,0,0,-1}; int dy[4]={0,1,-1,0}; char a[MAX_SIZE][MAX_SIZE]; bool vis[MAX_SIZE][MAX_SIZE]; queue<node> Q; int main(){ int n; cin>>n; for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>a[i][j]; node first; first.x=0; first.y=0; first.step=0; Q.push(first); vis[0][0]=1; int ans = 1000000; while(!Q.empty()){ node cur = Q.front(); Q.pop(); int x=cur.x; int y=cur.y; if(a[x][y]=='B'){ if(cur.step<ans) ans = cur.step; continue; } for(int i=0;i<4;i++){ int nx = x+dx[i]; int ny=y+dy[i]; if(nx>=0&&nx<n&&ny>=0&&ny<n&&!vis[nx][ny]&&a[x][y]!=a[nx][ny]){ node curN; curN.x=nx; curN.y=ny; curN.step=cur.step+1; Q.push(curN); vis[nx][ny]=1; } } } cout<<(ans==1000000?-1:ans); return 0; }
这篇关于蓝桥杯2015年第六届C/C++A组国赛第四题-穿越雷区的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升