OpenJ_Bailian - 3670 计算鞍点

给定一个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

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;
int num[5][5];
int r[5];
int main()
{
    memset(num,0,sizeof(num));
    for(int i=0;i<5;i++)
        for(int j=0;j<5;j++)
        cin>>num[i][j];
    bool flag=true;
    for(int i=0;i<5;i++)
    {
    int mnum=99999;
    int ipos= max_element(num[i],num[i]+5)-num[i];
    r[i]=num[i][ipos];
    for(int j=0;j<5;j++)
        mnum=mnum<num[j][ipos]?mnum:num[j][ipos];
    if(mnum==r[i])
    {flag=false;
        cout<<i+1<<" "<<ipos+1<<" "<<mnum<<endl;
    }

    }
    if(flag)
        cout<<"not found"<<endl;
}

  

时间: 2024-10-31 22:59:58

OpenJ_Bailian - 3670 计算鞍点的相关文章

计算鞍点

计算鞍点 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1122 [题目描述] 给定一个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

2018-03-05 计算鞍点

题目:计算鞍点 描述 给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点.鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值.例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 ).11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 215 10 11 20 25 输入输入包含一个5行5列的矩阵输出如果存在鞍点,输出鞍点所在的行.列及其值,如果不存在,输出"not found" 思路:定义两个函数,分别表

【北大先修课】计算概论(A)题库全代码

题目很水就是全都是坑真是丧心病狂啊 把代码留下造福后来人QωQ 结构体与链表练习 生日相同2.0 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define MAXN 200 using namespace std; struct st { int m,d; string name; bool operator&

noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T1——T10

T01 矩阵交换行 描述 给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果. 输入 输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开.第6行包含两个整数m.n,以一个空格分开.(1 <= m,n <= 5) 输出 输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开. 样例输入 1 2 2 1 2 5 6 7 8 3 9 3 0 5 3 7 2 1 4 6 3 0 8 2 4 1 5 样

HDU 5749 BestCoder Round #84 Colmerauer(暴力贡献)

Colmerauer Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 220    Accepted Submission(s): 94 Problem Description Peter has an n×m matrix M. Let S(a,b) be the sum of the weight all a×b submat

整理小朋友在noi.openjudge上的作业(1)

NOI(题库正在建设中,做题纪录有可能会被删除,请注意) 第一章的统计放前面 1 编程基础之输入输出 10 0 0% 最基础有空补刷 2 编程基础之变量定义.赋值及转换 10 0 0% 最基础有空补刷 3 编程基础之算术表达式与顺序执行 20 0 0% 最基础有空补刷 4 编程基础之逻辑表达式与条件分支 21 0 0% 最基础有空补刷 5 编程基础之循环控制 45 10 22% 最基础有空补刷 6 编程基础之一维数组 15 5 33% 最基础有空补刷 7 编程基础之字符串 35 0 0% 有必要

一些项目——鞍点计算

Description 找出具有m行n列二维数组Array的"鞍点",即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10. Input 输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数. Output 按下列格式输出鞍点: Array[i][j]=x 其中x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始. 一个二维数组并不一定存在鞍点,此时请输出None. 我们保证不会出现两个鞍点的情况,比如: 3 3 1 2 3 1

【BZOJ】【3670】【NOI2014】动物园

KMP算法 其实就像题面描述的那样……主要还是KMP算法的基础上搞一些DP(递推)之类…… 随便yy一下就可以得到50分了,因为num数组跟next的关系还是很密切的…… f[i]=f[next[i]]+1; 然后取 t=next[i]; while(t*2>i) t=next[t]; num[i]=num[t]+1; 然而我这样写……TLE了QwQ 因为这样每次都需要重新定位t…… 所以为了省时!我们直接用一个全局指针来搞……(UOJ是个宝地压-参考了RXDoi 神犇的代码) P.S.这次自己

高通QCOM 8610平台电量计算

一: SOC(荷电状态)计算方法 公式: SOC = RUC / (FCC-UUC) 名词: 术语 全称 注释 FCC Full-Charge Capacity 满电荷电量 UC Remaining Capacity RC 剩余电量 CC Coulumb Counter 电量计 UUC Unusable Capacity 不可用电量 RUC Remaining Usable Capacity RUC=RC-CC-UUC,剩余可用电量 OCV Open Circuit Voltage 开路电压,电