河南省第十届省赛 Plumbing the depth of lake (模拟)
title: Plumbing the depth of lake 河南省第十屆省賽
題目描述:
There is a mysterious lake in the north of Tibet. As the sun shines, the surface of the lake is colorful and colorful. The lake was unfathomable in rainy weather.??After the probe,??It has an interesting bottom in that it is full of little hills and valleys. .?Scientists?wonders how deep?the bottom of the lake is.
Scientists use the most advanced radar equipment to detect the bottom of the lake.?It is the discovery that?the deepest part is relatively flat. Thet want to know the largest depth number only if it is verified by the fact that the same depth appears in an adjacent reading.
To facilitate computing, scientists have put the lake as M * N grids?.*The depth ?reading of each grid is already known.?some readings might be 0--?It's a small island on the lake.
Find the greatest depth that appears in at least two 'adjacent'readings (where 'adjacent' means in any of the potentially eight squares that border a square on each of its sides and its diagonals). The lake has at least one pair of positive, adjacent readings.
輸入:
The first line of the input contains one integers T, which is the nember of? test cases (1<=T<=5). ?Each test case specifies:
Line 1:??????Two space-separated integers: M and N???(1?≤?M,? N?≤?50)
Lines 2..M+1: Line i+1 contains N space-separated integers that ?represent the depth of the lake across row i: Dij??? (0 <= Dij <=1,000,000);
輸出:
For each test case generate a single line: ?a single integer that is the depth of the lake determined.
樣例輸入:
1 4 3 0 1 0 1 2 0 1 5 1 2 3 4樣例輸出:
1分析:
找出湖底的只要有兩個單位面積相連(八個方向)的最大的深度,跟這個深度面積的大小沒有關系。
代碼:
#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; }轉載于:https://www.cnblogs.com/cmmdc/p/6887914.html
總結
以上是生活随笔為你收集整理的河南省第十届省赛 Plumbing the depth of lake (模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android ListView 的优化
- 下一篇: Android开发中方法数超过65535