首页 > 其他 > 详细

统计方形(数据加强版)

时间:2017-08-23 10:01:30      阅读:316      评论:0      收藏:0      [点我收藏+]

洛谷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;
}

 

统计方形(数据加强版)

原文:http://www.cnblogs.com/war1111/p/7416354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!