OpenJudge计算概论-寻找山顶

简介: /*===================================== 寻找山顶 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个m×n的山地上,已知每个地块的平均高程,请求出所有山顶所在的地块(所谓山顶,就是其地块平均高程不比其上下左右相邻的四个地块每个地块的平均高程小的地方)。
/*=====================================
寻找山顶
总时间限制: 1000ms 内存限制: 65536kB
描述
在一个m×n的山地上,已知每个地块的平均高程,请求出所有山顶所在的地块(所谓山顶,就是其地块平均高程不比其上下左右相邻的四个地块每个地块的平均高程小的地方)。
输入
第一行是两个整数,表示山地的长m(5≤m≤20)和宽n(5≤n≤20)。
其后m行为一个m×n的整数矩阵,表示每个地块的平均高程。每行的整数间用一个空格分隔。
输出
输出所有上顶所在地块的位置。每行一个。按先m值从小到大,再n值从小到大的顺序输出。
样例输入
10 5
0 76 81 34 66
1 13 58 4 40
5 24 17 6 65
13 13 76 3 20
8 36 12 60 37
42 53 87 10 65
42 25 47 41 33
71 69 94 24 12
92 11 71 3 82
91 90 20 95 44
样例输出
0 2
0 4
2 1
2 4
3 0
3 2
4 3
5 2
5 4
7 2
8 0
8 4
9 3

解析:输入二维数组,二重循环检测每一个元素,假如是山顶则输出其坐标。 ======================================
*/
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int m,n,i,j;
 5     int a[22][22];
 6     int flag;
 7     int x,y;
 8     freopen("5.in","r",stdin);
 9     freopen("resullt.out","w",stdout);
10     scanf("%d%d",&m,&n);
11     for(i=0;i<m;i++)
12     {
13         for(j=0;j<n;j++)
14         {
15             scanf("%d",&a[i][j]);
16         }
17     }
18     for(i=0;i<m;i++)
19     {
20         for(j=0;j<n;j++)
21         {
22             flag=1;
23             
24             x=i-1;
25             y=j;
26             if(flag==1&&x>=0)
27             {
28                 if(a[i][j]<a[x][y])
29                 {
30                     flag=0;
31                 }
32             }
33             x=i;
34             y=j+1;
35             if(flag==1&&y<n)
36             {
37                 if(a[i][j]<a[x][y])
38                 {
39                     flag=0;
40                 }
41             }
42             x=i;
43             y=j-1;
44             if(flag==1&&y>=0)
45             {
46                 if(a[i][j]<a[x][y])
47                 {
48                     flag=0;
49                 }
50             }
51             x=i+1;
52             y=j;
53             if(flag==1&&x<m)
54             {
55                 if(a[i][j]<a[x][y])
56                 {
57                     flag=0;
58                 }
59             }
60             if(flag)//flag==1
61             {
62                 printf("%d %d\n",i,j);
63             }
64         }
65     }
66     return 0;
67 }

 

相关文章
|
存储 机器学习/深度学习 缓存
算法概论
打好牢固的基础,是成就高楼万丈的基石头。在学习算法之前,我们先了解算法是什么?如何设计算法?什么才是“好”算法?如何优化算法?
182 0
|
自然语言处理 Java C++
计算理论入门 1.1 命题逻辑
1.1 命题逻辑 原文:Foundations of Computation 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 一个命题是一个或真或假的陈述。
1014 0
OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: 65536kB 描述 有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10,想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在 S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。
1372 0
|
人工智能
OpenJudge计算概论-计算鞍点
/*======================================================================== 计算鞍点 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个二维 (5*5)数组,每行只有一个最大值,每列只有一个最小值。
1217 0
OpenJudge计算概论-求平均年龄
/*============================================== 求平均年龄 总时间限制: 1000ms 内存限制: 65536kB 描述 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
1409 0
|
人工智能 算法 Java
OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35 元/本 计算机体系结构 86.2 元/本 编译原理 27.8元/本 操作系统 43 元/本 计算机网络 56 元/本 JAVA程序设计 65 元/本 给定每种图书购买的数量,编程计算应付的总费用。
1262 0