P2241 統計方形(資料加強版)

2022-09-28 04:06:11 字數 1013 閱讀 8636

目錄參考文章

題目傳送門

2023年普及組第一題

有乙個 n \times mn×m 方格的棋盤,求其方格包含多少正方形、長方形(不包含正方形)。

一行,兩個正整數 n,mn,m(n \leq 5000,m \leq 5000n≤5000,m≤5000)。

一行,兩個正整數,分別表示方格包含多少正方形、長方形(不包含正方形)。

輸入 #1複製

2 3
輸出 #1複製

8 10
首先要明白一點

正方形數量 + 長方形數量 = 矩形數量

以上是2*3的乙個矩形

我們固定右下角,比如在(2,3)

以(2,3)為右下角的正方形數量為:min(2,3)

以(2,3)為右下角的矩形數量為:2*3

易得,對於(i,j)

所以對所有右下角求和,求出所有正方形數量和矩形數量

長方形數量 = 矩形數量- 正方形數量

注意,結果較大,用long long 儲存

#include#include#includeusing namespace std;

typedef long long ll;

const int n = 5010;

int n, m;

ll sumz = 0; // 正方形個數

ll sumc = 0; // 所有矩形個數

int main()

cout << sumz << " " << sumc - sumz << endl;

return 0;

}

o(n+m)

P2241 統計方形(資料加強版)

題目背景 1997年普及組第一題 題目描述 有乙個n m方格的棋盤,求其方格包含多少正方形 長方形 輸入格式 n,m因為原來資料太弱,現規定m小於等於5000,n小於等於5000 原來是100,100 輸出格式 方格包含多少正方形 長方形 輸入輸出樣例 輸入 1 2 3 輸出 1 8 10 incl...

洛谷 P2241 統計方形(資料加強版)

洛谷 p2241 統計方形 資料加強版 include using namespace std intmain chang ju zheng cout 對於這道題,我們先考慮第乙個問題 一 算正方形的個數 1.如果我們固定了正方形的右上角 i,j 你能不能算出此時可能的正方形的個數?2.顯然,此時答...

洛谷 p2241 統計方形(思維)

求乙個n m的棋盤格上有多少個不同的正方形,多少個不同的長方形。用兩個for來模擬矩形的兩個邊,看這個矩形能在該棋盤格上擺出多少個不同的位置即可,如果矩形邊長相同則結果加到正方形上,反之則加到長方形上。include using namespace std define int long long ...