top1编程
← 返回题目
题解

【基础】棋盘方格

1 条题解

  • 0
    @ 2026-7-29 0:18:50
    #include <iostream>
    #include <algorithm> // 用于min函数
    using namespace std;
    
    int main() {
        int n, m;
        cin >> n >> m;
        
        // 计算正方形数量
        int square = 0;
        int max_side = min(n, m);
        for (int k = 1; k <= max_side; ++k) {
            square += (n - k + 1) * (m - k + 1);
        }
        
        // 计算所有长方形(含正方形)的数量
        long long total = (long long)n * (n + 1) / 2 * m * (m + 1) / 2;
        // 长方形(不含正方形)数量 = 总数 - 正方形数
        int rect = total - square;
        
        cout << square << " " << rect << endl;
        
        return 0;
    }
    
    • 1