C++代码,用于查找方形棋盘上获胜方格的分数


假设我们有一个n x n阶的方形棋盘。Amal和Bimal正在玩一个游戏。在游戏中,他们根据某些未知规则在棋盘的方格上写数字。目前,棋盘显示的是游戏结束后出现的元素。为了了解谁赢了,我们需要计算获胜方格的数量。如果满足以下条件,则某个方格为获胜方格:找到所有与该列共享的方格上的数字之和,并分别计算所有与该行共享的方格上的数字之和。如果列数字之和严格大于行数字之和,则该方格为获胜方格。

因此,如果输入如下所示:

5784
9532
1664
9573

则输出为6,因为

5784
9532
1664
9573

步骤

为了解决这个问题,我们将遵循以下步骤:

t := 0 n := size of M for initialize i := 0, when i <= n - 1, update (increase i by 1), do: for initialize j := 0, when j <= n - 1, update (increase j by 1), do: s := 0 l := 0 for initialize k := 0, when k <= n - 1, update (increase k by 1), do: s := s + M[i, k] l := l + M[k, j] if l > s, then: (increase t by 1) return t

示例

让我们看看下面的实现以更好地理解:

Open Compiler
#include <bits/stdc++.h> using namespace std; int solve(vector<vector<int>> M){ int t = 0; int n = M.size(); for (int i = 0; i <= n - 1; i++) for (int j = 0; j <= n - 1; j++){ int s = 0; int l = 0; for (int k = 0; k <= n - 1; k++){ s += M[i][k]; l += M[k][j]; } if (l > s) t++; } return t; } int main(){ vector<vector<int>> matrix = { { 5, 7, 8, 4 }, { 9, 5, 3, 2 }, { 1, 6, 6, 4 }, { 9, 5, 7, 3 } }; cout << solve(matrix) << endl; }

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输入

{ { 5, 7, 8, 4 }, { 9, 5, 3, 2 }, { 1, 6, 6, 4 }, { 9, 5, 7, 3 } }

输出

6

更新于:2022年3月30日

204 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告