07:矩阵归零消减序列和
时间:2022-05-07
本文章向大家介绍07:矩阵归零消减序列和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
07:矩阵归零消减序列和
总时间限制: 1000ms 内存限制: 65536kB描述
给定一个n*n的矩阵(3 <= n <= 100,元素的值都是非负整数)。通过(n-1)次实施下述过程,可把这个矩阵转换成一个1*1的矩阵。每次的过程如下:
首先对矩阵进行行归零:即对每一行上的所有元素,都在其原来值的基础上减去该行上的最小值,保证相减后的值仍然是非负整数,且这一行上至少有一个元素的值为0。
接着对矩阵进行列归零:即对每一列上的所有元素,都在其原来值的基础上减去该列上的最小值,保证相减后的值仍然是非负整数,且这一列上至少有一个元素的值为0。
然后对矩阵进行消减:即把n*n矩阵的第二行和第二列删除,使之转换为一个(n-1)*(n-1)的矩阵。
下一次过程,对生成的(n-1)*(n-1)矩阵实施上述过程。显然,经过(n-1)次上述过程, n*n的矩阵会被转换为一个1*1的矩阵。
请求出每次消减前位于第二行第二列的元素的值。
输入第一行是一个整数n。 接下来n行,每行有n个正整数,描述了整个矩阵。相邻两个整数间用单个空格分隔。输出输出为n行,每行上的整数为对应矩阵归零消减过程中,每次消减前位于第二行第二列的元素的值。样例输入
3
1 2 3
2 3 4
3 4 5
样例输出
3
0
0
1 #include<iostream>
2 #include<iomanip>
3 #include<cmath>
4 #include<cstring>
5 using namespace std;
6 int a[200][200];
7 int main() {
8 int i;
9 int j;
10 int k;
11 int l;
12 int m;
13 int n;
14 int ma;
15 int n1;
16 cin>>n;
17 for (i=1;i<=n;i++)
18 for (j=1;j<=n;j++)
19 cin>>a[i][j];
20 n1=n;//保存矩阵的行数和列数
21 for (k=1;k<=n1;k++)//需要消减n1次
22 {
23 cout<<a[2][2]<<endl;//在每次消减之前输出第i行i列
24 for (i=1;i<=n;i++)
25 {
26 ma=a[i][1];//保存每行第一个值,防止出现空值
27 for(j=2;j<=n;j++)
28 if(a[i][j]<ma)
29 ma=a[i][j];//取出每行最小的值
30 for(j=1;j<=n;j++)
31 a[i][j]=a[i][j]-ma;//进行每行消减
32 }
33 for(j=1;j<=n;j++)//进行每列消减
34 {
35 ma=a[1][j];//同理,保存该列的第一个值,防止出现空值
36 for(i=2;i<=n;i++)
37 if(a[i][j]<ma)
38 ma=a[i][j];
39 for(i=1;i<=n;i++)
40 a[i][j]=a[i][j]-ma;
41 }
42 for(i=2;i<n;i++)
43 for(j=1;j<=n;j++)
44 a[i][j]=a[i+1][j];
45 for(j=2;j<n;j++)
46 for(i=1;i<=n;i++)
47 a[i][j]=a[i][j+1];//进行删减
48 n--;
49 }
50 return 0;
51 }
- 帝国cms文章页调用当前文章URL如何操作?
- dedecms文章页调用地址(当前文章URL)如何操作?
- 饭团开通一周,3人学会了比特币操作
- Sample K算法
- C#读取“我的文档”等特殊系统路径及环境变量
- winform CheckedListBox实现全选/全不选
- 机器学习该如何入门
- dedecms建的网站如何去掉/index.html
- WPF ContextMenu的使用
- Json的序列化与反序列化以及乱入的k_BackingField
- 亚马逊面试题
- VisualStudio 怎么使用Visual Leak Detector
- Cannot find module 'socket.io'
- 【学术】独热编码如何在Python中排列数据?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 查找被删除但仍然占据磁盘的文件
- WPF 获取本机所有字体拿到每个字符的宽度和高度
- WPF 自己封装 Skia 差量绘制控件
- C# dotnet 使用 OpenXml 解析 Word 文件
- Day20:包含min函数的栈
- No module named ‘SerialClient‘和Cannot import package : rosserial_arduino
- 提升开发效率N倍的20+命令行神器!(附 demo)
- Java反射原理
- 【每日一题】46. Permutations
- 免费下论文的10个方法
- 【原创】90%的人都不会做的一道笔试题
- 这10道 Spring 常见面试题,你能搞定吗?
- 网工小白升级打怪篇(二)telnet实现远程管理
- (32)条件判断
- (33)if、case语句