zoukankan      html  css  js  c++  java
  • uva11538

    解题思路:

          1. 计数问题, 有三种相对摆放方式: 水平, 竖直, 对角线. 根据加法原理即可, 并且没有交集.

             水平和竖直是一样的, 只要n*m矩形旋转90度. 所以结果是: n*m*(m-1)+n*m*(n-1);

          2. 对角线复杂些, 先来确定对角线的长度: 1,2,3,...,n-2,n-1,n,n,n,...,n,n,n-1,n-2,...,2,1;

             其中n的个数是m-n+1 (其中假设m>n);

             结果: 2*(2*∑i*(i-1) + (m-n+1)*n*(n-1))  其中累加的范围是(1<=i<=n-1);

             化简得: 2*n*(n-1)*(3*m-n-1)/3

          3. 综上所述: n*m*(n+m-2)+2*n*(n-1)*(3*m-n-1)/3

    加法原理的水题。。。,书上都有。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 typedef unsigned long long  LL;
     7 int main()
     8 {
     9    LL m,n;
    10   while(scanf("%lld%lld",&n,&m),(m||n))
    11   {
    12     if(n>m)
    13       swap(n,m);
    14     LL x1=n*m*(m-1);//同一行相同n*C(2,m) 
    15       LL x2=m*n*(n-1);//同一列相同m*C(2,n) 
    16       LL x3=2*n*(n-1)*(3*m-n-1)/3;//对角线上 
    17       LL count=x1+x2+x3;
    18       cout<<count<<endl;//由于数比较大  应该用ll
    19   }
    20 }
  • 相关阅读:
    NSString
    IOS
    IOS
    UITextView
    UIButton
    IOS 视频缩略图的生成
    IOS CALayer的阴影属性
    IOS 创建渐变图层
    IOS 截取图片 部分 并生成新图片
    [看远、看透、看淡]
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/7444568.html
Copyright © 2011-2022 走看看