信息学奥赛一本通 1121:计算矩阵边缘元素之和 | OpenJudge NOI 1.8 03:计算矩阵边缘元素之和
【题目链接】
ybt 1121:计算矩阵边缘元素之和
OpenJudge NOI 1.8 03:计算矩阵边缘元素之和
【题目考点】
1. 二维数组
【解题思路】
解法1:遍历外圈
- 一个m行n列的矩阵,其边缘元素分别为:第1行,最后一行(第m行),第1列,最后一列(第n列)。
- 行和列之间有交点,交点在矩阵的四个角。所以在遍历第1行,第m行元素后,在遍历列元素时,从第2行遍历到第n-1行,避开矩阵四角的位置。这样就避免了重复计算。
- 矩阵若只有1行,那么第1行和第m行只需要加一次。矩阵若只有1列,第1列和第n列只需要加一次。
解法2:遍历矩阵
遍历整个矩阵,选择其中满足条件的元素进行相加
【题解代码】
解法1:遍历外圈
#include<bits/stdc++.h>
using namespace std;
int main()
{int a[101][101], m, n, sum = 0;//m行n列cin >> m >> n;for(int i = 1; i <= m; ++i)for(int j = 1; j <= n; ++j)cin >> a[i][j];for(int i = 1; i <= m; ++i)//第1列和第n列加和{sum += a[i][1];if(n != 1)//如果矩阵不是只有1列sum += a[i][n];}for(int j = 2; j <= n - 1; ++j)//第1行和第m行,除去两端元素后,加和{sum += a[1][j];if(m != 1)//如果矩阵不是只有1行sum += a[m][j];}cout << sum;return 0;
}
解法2:遍历矩阵
#include<bits/stdc++.h>
using namespace std;
int main()
{int m, n, a[105][105], s = 0;cin >> m >> n;for(int i = 1; i <= m; i++)for(int j = 1; j <= n; ++j){ cin >> a[i][j];if(i == 1 || i == m || j == 1 || j == n)s += a[i][j];}cout << s;return 0;
}
信息学奥赛一本通 1121:计算矩阵边缘元素之和 | OpenJudge NOI 1.8 03:计算矩阵边缘元素之和相关推荐
- 信息学奥赛一本通 1041:奇偶数判断 | OpenJudge NOI 1.4 03
[题目链接] ybt 1041:奇偶数判断 OpenJudge NOI 1.4 03:奇偶数判断 [题目考点] 1. if-else语句 2. 三目运算符?: 3. 判断奇数偶数 数a如果是奇数,则有 ...
- 信息学奥赛一本通 1404:我家的门牌号 | OpenJudge NOI 2.1 7649:我家的门牌号 | 小学奥数 7649
[题目链接] ybt 1404:我家的门牌号 OpenJudge NOI 2.1 7649:我家的门牌号 OpenJudge NOI 小学奥数 7649:我家的门牌号 注意:一本通OJ和OpenJud ...
- 信息学奥赛一本通 1227:Ride to Office | OpenJudge NOI 4.6 2404:Ride to Office
[题目链接] ybt 1227:Ride to Office OpenJudge NOI 4.6 2404:Ride to Office 原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直 ...
- 信息学奥赛一本通 1067:整数的个数 | OpenJudge NOI 1.5 11
[题目链接] ybt 1067:整数的个数 OpenJudge NOI 1.5 11:整数的个数 [题目考点] 1. 循环统计 2. (扩展)散列表 [题解代码] 解法1:用if语句 #include ...
- 信息学奥赛一本通 1050:骑车与走路 | OpenJudge NOI 1.4 12
[题目链接] ybt 1050:骑车与走路 OpenJudge NOI 1.4 12:骑车与走路 [题目考点] 1. 两浮点型量判断相等 由于浮点型量在内存中以二进制形式表示,很多数据并不能精确表示( ...
- 信息学奥赛一本通 1038:苹果和虫子 | OpenJudge NOI 1.3 15 | OpenJudge NOI 1.4 21
[题目链接] ybt 1038:苹果和虫子 OpenJudge NOI 1.3 15:苹果和虫子 OpenJudge NOI 1.4 21:苹果和虫子2 [题目考点] 1. if-else语句 if( ...
- 信息学奥赛一本通 1013:温度表达转化 | OpenJudge NOI 1.3 08
[题目链接] ybt 1013:温度表达转化 OpenJudge NOI 1.3 08:温度表达转化 [题目考点] 1. 书写计算表达式 了解* /的优先级高于+ - 了解()可以改变运算优先级 2. ...
- 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命
[题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...
- 信息学奥赛一本通 1181:整数奇偶排序 | OpenJudge NOI 1.10 06:整数奇偶排序
[题目链接] ybt 1181:整数奇偶排序 OpenJudge NOI 1.10 06:整数奇偶排序 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将奇数和偶数分开,分别排序 ...
最新文章
- MyBatis-08MyBatis注解方式之@Insert
- [Machine Learning] logistic函数和softmax函数
- vim的tab键设定
- switch中case后可以是表达式吗_Java中的 quot;如果,那么quot; 怎么表达?
- LightGBM参数调优代码详解
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_1_两种获取Stream流的方式...
- iOS:copy的本质
- 澜沧江某水电站下坝址坝址初步设计
- Java实现UDP功能
- 整理几款实用javascript富文本编辑器
- PCA9685 多舵机控制器的编程
- Java方法——方法的重载
- 用MACD决策树模型预测股票趋势
- HBase Shell常用命令
- 5.服务网关:GateWay
- 微信公众号留言功能实现方法分享
- 【注意】这款Python快递查询小系统超级好用:不信你自己试试?
- KTorrent for KDE 4 已抵达
- CentOS 8安装Python3.7.0
- C语言文件操作实例代码