标题:怎么求x*x方格内一个点的坐标?
只看楼主
AbduRahman1
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2021-11-16
结帖率:50%
 问题点数:0 回复次数:2 
怎么求x*x方格内一个点的坐标?
Description
有一次,苏轼在西湖钓鱼时遇到了一位正在钓鱼的老叟,可是他发现老叟的钓鱼竿上并没有钩子,苏轼感到非常奇怪,正当他想问老叟的时候,老叟丢给了他一张图纸,说:“传闻此湖中有一个宝藏,今日见你有缘,就把这藏宝图赠与你罢”,说完扬长而去。

 苏轼打开藏宝图,上面写着“东西最浅,且南北最深处”,意思就是埋藏宝物的点在所在的同一水平线上水深是最浅的,同时在所在的同一竖直线上是最深的,后面是西湖的水深地形图。

你可否帮助苏轼找到此宝藏呢?

Input
只有一组输入

第一行输入n,m(1<=n,m<=100),分别表示西湖的南北方向长度和东西方向长度

接下来n行每行输入m个数据,表示各坐标的湖水水深

保证每组数据有且只有一个这样的点,且每处水深不同

Output
输出宝藏坐标

Samples
input
3 3
1 2 3
4 5 6
7 8 9
output
(3,1)
input
3 3
1 2 3
7 8 9
5 4 6
output
(2,1)
input
3 3
9 10 3
8 12 7
11 4 5
output
(2,3)
input
4 4
24 31 52 61
20 75 11 32
22 72 44 65
12 5 108 33
output
(1,1)
搜索更多相关主题的帖子: 输入 长度 Output Input 坐标 
2021-12-19 20:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
保证每组数据有且只有一个这样的点,且每处水深不同
赞一下,虽然是最低要求的严谨,但之前同样的题目很少见

程序代码:
#include <stdio.h>
#include <stdbool.h>

int main( void )
{
    // 输入
    unsigned n, m, dp[100][100];
    scanf( "%u%u", &n, &m );
    for( unsigned r=0; r!=n; ++r )
        for( unsigned c=0; c!=m; ++c )
            scanf( "%u", &dp[r][c] );

    // 计算
    for( unsigned r=0; r!=n; ++r )
    {
        // 找出第r行最小值所在的列
        unsigned idx_c = 0;
        for( unsigned c=1; c!=m; ++c )
            if( dp[r][c] < dp[r][idx_c] )
                idx_c = c;
        // 然后判断第idx_c列最大值所在的行是不是第r行
        bool ok = true;
        for( unsigned i=0; ok && i!=n; ++i )
            if( dp[i][idx_c] > dp[r][idx_c] )
                ok = false;
        if( ok )
        {
            printf( "(%u,%u)\n", r+1, idx_c+1 );
            break;
        }
        // 以上可以缓存下来以提供效率,但数据太少,所以意义不大
    }
}
2021-12-20 09:15
AbduRahman1
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2021-11-16
得分:0 
回复 2楼 rjsp
非常的感谢!感谢备注!
2021-12-22 19:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507921-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.314808 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved