統計方形(數據加強版)
阿新 • • 發佈:2017-08-23
數學 -- clas tro urn 一個 its namespace ron
洛谷P2241 統計方形(數據加強版)
我的做法是在求矩形時(包括正方形),用的是長從1~m,寬從1~n枚舉的,但是數學方法往往能起到四兩撥千斤的效果,其實矩形的個數就是Cn+22 * Cm+22.因為確定一個矩形只需要確定它的兩個端點就可以了,為啥要n+1,m+1呢?因為矩形邊長可以為1,就是另一個點選空。若只求長方形,用容斥原理即可。
#include<bits/stdc++.h> using namespace std; unsigned long long n,m; unsigned long long zf,cf; int main() { cin>>n>>m; unsignedlong long l=n,k=m; while(l>=1&&k>=1) { zf+=l*k; l--; k--; } l=n,k=m; while(l>=1) { while(k>=1) { cf+=l*k; k--; } k=m; l--; } cout<<zf<<‘ ‘<<cf-zf; return 0; }
統計方形(數據加強版)