C/C++NOIP之路

C++ 找鞍点

2017-03-06  本文已影响244人  静_谷

好经典的信息学竞赛题,题目应该都熟悉吧
(本着负责的态度还是贴上吧……)

找鞍点。
鞍点:在行上是最大,而在列上是最小的元素
1 2 3
4 5 6
7 8 9
这个数组中,3就为鞍点

上代码:

#include <iostream>

using namespace std;

int main()
{
    int a[3][3];
    for(int i=0;i<3;i++)
            for(int j=0;j<3;j++)
                    cin>>a[i][j];
    for(int y=0;y<3;y++)
    {
            int min = a[0][y];
            int x_min=0;
            for(int x=0;x<3;x++)
            {
                    if(a[x][y] < min)
                    {
                               x_min=x;
                               min = a[x][y];
                    }
            }
            int max = a[x_min][0];
            for(int y=0;y<3;y++)
            {
                    if(a[x_min][y] > max)
                               max = a[x_min][y];
            }
            if(min == max)
                   cout<<max;
    }
    cin.get();
    cin.get();
    return 0;
}

思路就是,先找出列上是最小的元素,再在那一行确认这个元素是否为最大的
没什么好说的,自己领会吧~

上一篇下一篇

猜你喜欢

热点阅读