首页 > 代码库 > UVa 11538 Chess Queen

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     #endif11 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 11538 Chess Queen