zoukankan      html  css  js  c++  java
  • Uva11538 Chess Queen

    排列 数学问题 

    只需要考虑同行、同列、同对角线的情况然后相加。 
    不妨设n<=m。 
    同行情况,先选择某一行(n),然后在这一行中选两个元素(m(m1)),答案是mn(m1)。 
    同列类似。 
    同对角线,对角线的长度可以看成两个1..n再加上m-n+1个n。后者答案是(mn1)n(n1),前者答案是

    i=0ni(i1)=n(n+1)(2n+1)6n(n+1)2=n3n3

    不要忘记有两个方向的对角线。

    http://blog.csdn.net/sdfzyhx/article/details/53857797

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstdio>
     5 #include<cmath>
     6 using namespace std;
     7 long long n,m;
     8 long long ans;
     9 int main(){
    10     while(scanf("%lld%lld",&n,&m) && n){
    11         if(n>m)swap(n,m);
    12         ans=2*(2*(n*n*n-n)/3+(m-n-1)*(n-1)*n)+m*n*(m-1)+m*n*(n-1);
    13         cout<<ans<<endl;
    14     }
    15     return 0;
    16 }
  • 相关阅读:
    后台执行linux命令
    日志
    配置文件
    后台
    后台代码注释
    递归建立文件夹
    图片合成
    java.awt.Font
    java-日期取特定值
    linux乱码
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6271297.html
Copyright © 2011-2022 走看看