UVa 11538 Chess Queen

在n × m 的棋盘上放两个互相攻击的皇后,问有多少种方法

这道题重点不在于编程,而是数学公式的推导。其中还用到了Σ(i2)的公式,看来我高中数学没白学,嘎嘎

至于推导过程,看大白书吧,嘿嘿。对了,书中有一步貌似有个小错误,不过不影响结果

 1 //#define LOCAL

 2 #include <iostream>

 3 #include <algorithm>

 4 using namespace std;

 5 

 6 int main(void)

 7 {

 8     #ifdef LOCAL

 9         freopen("11538in.txt", "r", stdin);

10     #endif

11 

12     unsigned long long n, m;

13     while(cin >> n >> m)

14     {

15         if(n + m == 0)    break;

16         if(n > m)    swap(n, m);

17         cout << m*n*(m+n-2) + 2*n*(n-1)*(3*m-n-1)/3 << endl;

18     }

19     return 0;

20 }
代码君

 

你可能感兴趣的:(uva)