统计方形(数据加强版)

统计方形(数据加强版)

题目背景

1997年普及组第一题

题目描述

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

输入格式

一行,两个正整数 n,mn5000,m5000)。

输出格式

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

样例 #1

样例输入 #1

2 3

样例输出 #1

8 10

思路

题意:

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

  2. 是 n * m 的方格棋盘 而不是矩阵

  3. 注意数据范围 long long

示例:
长方形:
求 n * m 的格子内有多少,长为2,宽为1的长方形

正方形:

求n * m 的格子内有多少,长为2,宽为1的正方形

推论:

nm{(ni)(mj)if i!=j(ni)(mj)if i==j 

题解

#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define ppb pop_back
#define SZ(v) ((int)v.size())
typedef long long ll;
typedef unsigned int u32;
typedef unsigned long long u64;
typedef double db;
using namespace std;
const int N = 1e6+5; 

int n, m;
ll a, b;

void solve() {
    cin >> n >> m;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            if(i != j) {
                a += (n-i)*(m-j);
            } else {
                b += (n-i)*(m-j);
            }
        }
    }    
    cout << b << " " << a << "\n";
}
 
int main() {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); 
    // cin >> t;
    // while(t--) {
        solve();
    // }
    return 0;
}
posted @   zhyyyyy115  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示