V:计算鞍点
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。
鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。
例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25 - 输入
- 输入包含一个5行5列的矩阵
- 输出
- 如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"
- 样例输入
-
11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25
- 样例输出
-
4 1 8
1 #include <iostream> 2 using namespace std; 3 void Andian(int a[][5], int m, int n) 4 { 5 int flag = 0; 6 for (int i=0;i<n;++i) 7 { 8 int d =a[i][0],k=0; 9 for (int j=1;j<m;++j) 10 { 11 if (a[i][j]>d) 12 { 13 d = a[i][j]; 14 k = j; 15 }//a[i][k]为i行最大值 16 17 } 18 int j; 19 for (j=0;j<n;++j) 20 { 21 if (a[j][k]<d) 22 { 23 break; 24 } 25 26 } 27 if (j == n) 28 { 29 cout << i+1 << " " << k+1 << " " << a[i][k]; 30 flag = 1; 31 } 32 33 } 34 if (!flag) 35 { 36 cout << "not found"; 37 } 38 } 39 int main() 40 { 41 int a[5][5]; 42 for (int i=0;i<5;++i) 43 { 44 for (int j=0;j<5;++j) 45 { 46 cin >> a[i][j]; 47 } 48 } 49 Andian(a, 5, 5); 50 return 0; 51 }
道阻且长,行则将至

浙公网安备 33010602011771号