【洛谷 P2241】统计方形(数据加强版)题解(循环枚举)-CSDN博客

197 阅读1分钟

统计方形(数据加强版)

题目背景

1997年普及组第一题

题目描述

有一个 n × m n \times m n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。

输入格式

一行,两个正整数 n , m n,m n,m( n ≤ 5000 , m ≤ 5000 n \leq 5000,m \leq 5000 n≤5000,m≤5000)。

输出格式

一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。

样例 #1

样例输入 #1

2 3

样例输出 #1

8 10

思路

矩形数 = 正方形数 + 长方形数

AC代码

#include <iostream>
#include <algorithm>
#define AUTHOR "HEX9CF"
using namespace std;

long long s, r;

int main()
{
    int n, m;
    cin >> n >> m;
    s = 0;
    r = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (i == j)// 是正方形
            {
                s += (m - j) * (n - i);
            }
            r += (m - j) * (n - i);
        }
    }
    cout << s << " " << r - s << endl;
    return 0;
}