1. 程式人生 > >統計方形(數據加強版)

統計方形(數據加強版)

數學 -- clas tro urn 一個 its namespace ron

洛谷P2241 統計方形(數據加強版)

我的做法是在求矩形時(包括正方形),用的是長從1~m,寬從1~n枚舉的,但是數學方法往往能起到四兩撥千斤的效果,其實矩形的個數就是Cn+22 * Cm+22.因為確定一個矩形只需要確定它的兩個端點就可以了,為啥要n+1m+1呢?因為矩形邊長可以為1,就是另一個點選空。若只求長方形,用容斥原理即可。

#include<bits/stdc++.h>
using namespace std;
unsigned long long n,m;
unsigned long long zf,cf;
int main()
{
    cin>>n>>m;
  unsigned   
long 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; }

統計方形(數據加強版)