HRBUST1143.泉水
来源:互联网 发布:c语言判断鸡蛋个数 编辑:程序博客网 时间:2024/04/29 16:59
BFS解法:
#include<stdio.h>#include<queue>#include<string.h>using namespace std;struct Point{ int x; int y;} tmp,tmp2;queue<Point>q;int vis[1005][1005];int a[1005][1005];int d[4][2]= {0,1,0,-1,1,0,-1,0};//四个方向int i,j;int main(){ int n,m,p1,p2; while(scanf("%d%d%d%d",&n,&m,&p1,&p2)!=EOF) { int ans=1; for(i=1; i<=n; i++) for(j=1; j<=m; j++) scanf("%d",&a[i][j]); while(!q.empty())//队列清空 { q.pop(); } memset(vis,0,sizeof(vis));//数组清空 tmp.x = p1; tmp.y = p2; vis[tmp.x-1][tmp.y-1]=1; q.push(tmp); while(!q.empty()) { tmp = q.front(); q.pop(); for(i=0; i<4; i++)//各方向搜索 { tmp2.x = tmp.x + d[i][0]; tmp2.y = tmp.y + d[i][1]; if(a[tmp2.x][tmp2.y]<=a[p1][p2] && tmp2.x>=1 && tmp2.x<=n && tmp2.y>=1 && tmp2.y<=m && !vis[tmp2.x-1][tmp2.y-1])//入队条件 { ans++;//每淹没一点,答案加一 vis[tmp2.x-1][tmp2.y-1] = 1;//标记淹没点 a[tmp2.x][tmp2.y] = a[p1][p2];//淹没点与泉眼高度一致 q.push(tmp2); } } } printf("%d\n", ans); } return 0;}
DFS解法:
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int n,m,p1,p2;int vis[1005][1005];int a[1005][1005];int i,j,ans;int d[4][2]= {0,1, 0,-1, 1,0, -1,0};void DFS(int x,int y){ if(vis[x][y]) { return ; } if(!vis[x][y]) { ans++; vis[x][y]=1; } int i,x1,y1; for(i=0; i<4; i++) { x1=x+d[i][0]; y1=y+d[i][1]; if(x1>=1 && x1<=n && y1>=1 && y1<=m && a[x1][y1]<=a[p1][p2]) { DFS(x1,y1);//通过递归实现深搜 } } return ;}int main(){ while(scanf("%d%d%d%d",&n,&m,&p1,&p2) != EOF) { for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { scanf("%d",&a[i][j]); } } memset(vis,0,sizeof(vis)); ans=0; DFS(p1,p2); printf("%d\n",ans); }}
阅读全文
0 0
- HRBUST1143.泉水
- 泉水
- 泉水.
- 泉水
- 济南泉水
- 歌曲:泉水
- 泉水叮咚
- HLG1433泉水
- 泉水 bfs
- 泉水——深搜
- hrbust 1143 泉水
- hrbust 1143 泉水
- 哈理工 1143 泉水
- hrbust 1143泉水DFS
- 我爱故乡的泉水
- 描述泉水的精美句子
- 泉水——广搜
- 泉水(DFS模板题)
- Vue父子组件通信
- windows和linux换行规则的区别
- python中list与array互相转换
- 错误解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
- 专题地图制作(设计、规划、测绘制作图斑)标绘使用详解
- HRBUST1143.泉水
- 通过反编译深入理解Java String及intern
- CREATE TABLE 相关
- latex 竖排子图的生成
- LeetCode number 283 move zeroes的一种易于理解的解法
- java虚拟机规定必须立即初始化类的5种情况
- javascript 正则表达式
- 阿里内部干货分享 曾鸣:淘宝是怎样从 0 做到 0.1 的?
- C++单元测试工具——doctest