1235: 计算矩阵的鞍点

题目

  输出二维数组中行上为最大,列上为最小的元素(称为鞍点)及其位置(行列下标)。如果不存在任何鞍点,请输出"404 not found"(不带引号)。更多内容点击标题。

分析

  没什么好分析的,只要看懂下面这几组数据就明白了。

输入

2
2 2
1 1
1 1 2 2
2 3
1 3

输出

1 1 1
1 1 2
1 2 1
1 2 2
3 1 2
3 2 2

代码

/**
* time 1248ms
* @author PengHao
* @version A2.0
* @date 2019-04-21 下午8:16:45
*/ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer; public class Main { /**
* Input and Output
*
* @author PengHao
* @version 1.0
* @date 2019年4月21日 下午7:14:20
*/
private static class IO {
// 输入部分
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
StreamTokenizer st = new StreamTokenizer(br); public int nextInt() {
try {
st.nextToken();
} catch (IOException e) {
e.printStackTrace();
}
return (int) st.nval;
} // 输出部分
OutputStreamWriter osw = new OutputStreamWriter(System.out);
PrintWriter pw = new PrintWriter(osw); void print(int x) {
pw.print(x);
pw.flush();
} void print(String s) {
pw.print(s);
pw.flush();
} void println() {
pw.println();
pw.flush();
} void println(String s) {
pw.println(s);
pw.flush();
} void println(int a, int x, int y) {
print(a);
print(" ");
print(x);
print(" ");
print(y);
println();
}
} private IO io = new IO();
private int n, m;
private int[][] matrix; // 矩阵 public Main() {
int t;
matrix = new int[23][23];
boolean flag;
t = io.nextInt();
while ((t--) > 0) {
input();
flag = true; // 初始没找到鞍点
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (largest(i, j) && smallest(i, j)) {
io.println(matrix[i][j], i, j);
flag = false;
}
}
}
if (flag) {
io.println("404 not found");
}
}
} /**
* Input data
*/
private void input() {
n = io.nextInt();
m = io.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
matrix[i][j] = io.nextInt();
}
}
} /**
* @param x 行下标
* @param y 列下标
* @return true 如果这个数是这一行最大的数
*/
private boolean largest(int x, int y) {
for (int j = 1; j <= m; j++) {
if (matrix[x][j] > matrix[x][y]) {
return false;
}
}
return true;
} /**
* @param x 行下标
* @param y 列下标
* @return true 如果这个数是这一列最小的数
*/
private boolean smallest(int x, int y) {
for (int i = 1; i <= n; i++) {
if (matrix[i][y] < matrix[x][y]) {
return false;
}
}
return true;
} public static void main(String[] args) {
new Main();
} }

代码补充

  类IO有点长,就是个输入输出的功能,同Scanner(输入)和println(输出)一样,我只是听说Scanner读取比较慢,就用的这种方法。


写在最后:

  1. 如需转载,请于标题下注明链接形式的wowpH的博客即可;
  2. 代码原创,如需公开引用,不能删除首行注释(作者,版本号,时间等信息)。
  3. 如果有疑问欢迎评论留言,尽力解答。

WUSTOJ 1235: 计算矩阵的鞍点(Java)的更多相关文章

  1. 【原创】开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  2. 【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  3. 【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  4. Openjudge计算概论-计算矩阵边缘元素之和

    /*======================================================================== 计算矩阵边缘元素之和 总时间限制: 1000ms ...

  5. POJ C程序设计进阶 编程题#1:计算矩阵边缘之和

    编程题#1:计算矩阵边缘元素之和 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB ...

  6. 开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

    原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  7. 开源Math.NET基础数学类库使用(16)C#计算矩阵秩

    原文:[原创]开源Math.NET基础数学类库使用(16)C#计算矩阵秩                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4 ...

  8. 开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

    原文:[原创]开源Math.NET基础数学类库使用(15)C#计算矩阵行列式                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  9. matlab计算矩阵每列非0元素个数

    在统计分析中,有时候需要计算矩阵每列非0元素的个数,可以用以下方法: 先用find找到每列不为0的元素index,然后用count计数. 假设有矩阵A[M,N], 结果存在countZeros cou ...

随机推荐

  1. 内存分析工具 MAT 的使用【转】

    转自:http://blog.csdn.net/aaa2832/article/details/19419679/ 1 内存泄漏的排查方法 Dalvik Debug Monitor Server (D ...

  2. /dev/mem同步写不能使用msync的MS_SYNC选项探究

    问题 做了个测试板子的程序,里面有一项写铁电的功能,要求写入之后立即断电,重启后校验数据准确性:铁电设计是通过内存地址直接映射的,于是,使用mmap直接映射了/dev/mem文件,自然地写入之后使用m ...

  3. 我的公众号:WebHub

    欢迎各位小可爱关注我的公众号WebHub(ID:myWebHub),公众号不定期更新软件行业的总结性文章,内容包括行业趋势和软件哲学,文章不谈技术只谈思想,满满干货! 此外,公众号文章同步CSDN博客 ...

  4. TynSerial序列(还原)TClientDataSet

    TynSerial序列(还原)TClientDataSet 可以一次性序列(还原)多个TClientDataSet. 1)TClientDataSet查询数据 procedure TForm1.Qry ...

  5. Flutter移动电商实战 --(53)购物车_商品列表UI框架布局

    cart_page.dart 清空原来写的持久化的代码; 添加对应的引用,stless生成一个静态的类.建议始终静态的类,防止重复渲染 纠正个错误,上图的CartPage单词拼错了,这里改过来防止后面 ...

  6. 技术干货丨如何在VIPKID中构建MQ服务

    小结: 1. https://mp.weixin.qq.com/s/FQ-DKvQZSP061kqG_qeRjA 文 |李伟 VIPKID数据中间件架构师 交流微信 | datapipeline201 ...

  7. 复习Android布局

    效果如图: 这里没有做逻辑的处理,仅仅是布局的罗列.包括垂直和水平的线性布局,以及一个滚动的view. <?xml version="1.0" encoding=" ...

  8. QSplitter的使用案例

    #include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QTe ...

  9. 微信小程序企业付款到个人

    <?php /** * 小程序之企业付款到个人! */ class WxPayModel extends Model { public function sendMoneyToPerson($t ...

  10. react 组装table列表带分页

    2.组装编辑界面 /** * Created by hldev on 17-6-14. */ import React, {Component} from "react"; imp ...