G Plumbing the depth of lake 河南第十届ACM真题 【搜索】

来源:互联网 发布:网络短信平台软件 编辑:程序博客网 时间:2024/05/20 12:21
/*
八个方向搜索,找到连续大于等于 两个 相同 的最深的地方。

*/

#include <cstdio>#include <cstring>int map[55][55];int dx[8] = {-1,-1,-1,0,0,1,1,1};int dy[8] = {-1,0,1,-1,1,-1,0,1};int max;void search(int i,int j){int k;if(map[i][j]==-1) return ;if(max >= map[i][j]) return ;for(k=0;k<8;k++){if(map[i][j] == map[i + dx[k]] [j + dy[k]]){//八个方向找一下,有就更新 max max = map[i][j];break;}}}int main(){int T;scanf("%d",&T);while(T--){max = -1;int i,j,m,n;scanf("%d%d",&m,&n);memset(map,-1,sizeof(map));for(i=1;i<=m;i++){for(j=1;j<=n;j++){scanf("%d",&map[i][j]);}}for(i=1;i<=m;i++)//枚举一遍地图。 {for(j=1;j<=n;j++){search(i,j);}}printf("%d\n",max);}return 0;}


0 0
原创粉丝点击