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

简介: 该题目是1997年普及组的一道编程题,要求计算$n\times m$棋盘中的正方形和长方形数量(不计正方形)。输入包含两正整数$n,m\leq 5000$。输出为一行,两个正整数分别表示正方形和长方形数量。示例输入`2 3`,输出`8 10`。解题思路是将矩形数拆分为正方形数和长方形数,然后通过双重循环计算。AC代码使用C++编写,通过累加方法得出结果。

统计方形(数据加强版)

题目背景

1997年普及组第一题

题目描述

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

输入格式

一行,两个正整数 $n,m$($n \leq 5000,m \leq 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;
}
目录
相关文章
|
1月前
|
存储 算法
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
|
1月前
|
存储 C语言
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
54 0
|
22天前
|
存储 索引
每日刷题——相遇、宝石(模拟+数学)、相助(模拟+数组)、相依(dp的优化)
每日刷题——相遇、宝石(模拟+数学)、相助(模拟+数组)、相依(dp的优化)
20 1
|
9天前
【洛谷 P1618】三连击(升级版)题解(循环枚举+全排列)
该编程题目要求将数字1到9分为三组,形成三个三位数,使得这三个数成比例A:B:C。输入为A、B、C的值,输出符合条件的三位数组合,按首个数字升序排列。样例输入为1 2 3,输出多组解。代码使用全排列遍历数字,检查比例关系。若无解,则输出&quot;No!!!&quot;。
5 0
|
1月前
|
C语言
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
|
1月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 153. 寻找旋转排序数组中的最小值 算法解析
☆打卡算法☆LeetCode 153. 寻找旋转排序数组中的最小值 算法解析
|
1月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 154. 寻找旋转排序数组中的最小值 II 算法解析
☆打卡算法☆LeetCode 154. 寻找旋转排序数组中的最小值 II 算法解析
|
6月前
|
C语言
第十四弹--打印1-100之间的素数
第十四弹--打印1-100之间的素数
|
7月前
|
算法
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
31 0
|
8月前
|
人工智能 算法 测试技术
[蓝桥杯] 枚举、模拟和排列问题
[蓝桥杯] 枚举、模拟和排列问题
62 0