BFS(扫雷游戏、Tokitsukaze and Development Task、全球变暖)

2024-04-06 21:36

本文主要是介绍BFS(扫雷游戏、Tokitsukaze and Development Task、全球变暖),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注:1.  列举搜索方位dx,dy

        2. 借助队列queue<>

        3. 出队,入队操作

题目1:P2670 [NOIP2015 普及组] 扫雷游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

 代码:

#include<bits/stdc++.h>
using namespace std;
char c[105][105];
//代表八个方位 
int dx[]={0,-1,-1,-1,0,1,1,1};
int dy[]={-1,-1,0,1,1,1,0,-1};
int n,m;void count(int x,int y)
{int cnt=0;//遍历八个方位 for(int i=0;i<8;i++){int nx=x+dx[i];int ny=y+dy[i];if(nx>=0&&nx<n&&ny>=0&&ny<m&&c[nx][ny]=='*')cnt++;}cout<<cnt;
}
int main()
{cin>>n>>m;for(int i=0;i<n;i++)cin>>c[i];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(c[i][j]=='*')cout<<'*';else count(i,j);}cout<<endl;}return 0;} 

题目2:

代码:

#include<bits/stdc++.h>
using namespace std;
int d[305];
int dx[]={1,-1,10,-10,100,-100,300};
void bfs()
{queue<int> q;memset(d,-1,sizeof(d));q.push(10);q.push(300);d[10]=0;d[300]=1;while(!q.empty()){int t=q.front();q.pop();for(int i=0;i<7;i++){int nx=t+dx[i];if(nx>=10&&nx<=300&&d[nx]==-1){d[nx]=d[t]+1;q.push(nx);}}}
}
int main()
{int t;cin>>t;//进行BFS,计算每一个位置的步数 bfs();while(t--){int ans=0;for(int i=0;i<4;i++){int x;cin>>x;ans+=d[x];}cout<<ans<<endl;}} 

题目3:P8662 [蓝桥杯 2018 省 AB] 全球变暖 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码(部分解析在代码内):

#include<bits/stdc++.h>
using namespace std;
char c[1005][1005];
int v[1005][1005];
int dx[]={0,-1,0,1};
int dy[]={-1,0,1,0};
int n;int bfs(int x,int y)
{queue<vector<int>> q;//因为队列中的一个元素要记录的是位置x,y坐标,所以元素可用vector类型存放 q.push({x,y}); int flag=0;//判断该岛屿是否存在四周无海的 while(!q.empty()){vector<int> tmp=q.front();//记录当前元素 q.pop();//出队 int xx=tmp[0],yy=tmp[1];//记录当前元素的x,y值 int t=0;for(int i=0;i<4;i++){int nx=xx+dx[i];int ny=yy+dy[i];if(nx>=0&&ny>=0&&nx<n&&ny<n&&v[nx][ny]==0){if(c[nx][ny]=='#'){v[nx][ny]=1;q.push({nx,ny});}elset=1;}}if(t==0)//该点遍历四周之后,没有遇见海,标记一下 flag=1;}return flag;
}
int main()
{cin>>n;for(int i=0;i<n;i++)cin>>c[i];int cnt=0,sum=0;//cnt记录所有岛屿的个数,sum记录不被淹没的岛屿的个数 for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(c[i][j]=='#'&&v[i][j]==0)//计算岛屿的个数 {sum+=bfs(i,j);cnt++;}}} cout<<cnt-sum;return 0;} 

这篇关于BFS(扫雷游戏、Tokitsukaze and Development Task、全球变暖)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/880884

相关文章

hdu1254(嵌套bfs,两次bfs)

/*第一次做这种题感觉很有压力,思路还是有点混乱,总是wa,改了好多次才ac的思路:把箱子的移动当做第一层bfs,队列节点要用到当前箱子坐标(x,y),走的次数step,当前人的weizhi(man_x,man_y),要判断人能否将箱子推到某点时要嵌套第二层bfs(人的移动);代码如下:

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

hihocoder1114 小Hi小Ho的惊天大作战:扫雷·一

1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表示第一行中距离与这个格子不超过2的格子里总共有多少个

POJ 3057 最大二分匹配+bfs + 二分

SampleInput35 5XXDXXX...XD...XX...DXXXXX5 12XXXXXXXXXXXXX..........DX.XXXXXXXXXXX..........XXXXXXXXXXXXX5 5XDXXXX.X.DXX.XXD.X.XXXXDXSampleOutput321impossible

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

全球AI产品Top100排行榜

Web Top50的榜单里,AIGC类型的应用占比52%,遥遥领先。AIGC类型包括图像、视频、音乐、语音等的内容生成和编辑。音乐生成应用Suno在过去六个月中的排名跃升最为显著,从第36位上升至第5位。排名第二大类是通用对话/AI聊天/角色扮演类型的应用,占比20%,包括常见的ChatGPT、Claude、Character.ai等。其他是AI写作(8%)、AI搜索/问答(6%)、Agent/