在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 }
代码君
时间: 2024-10-25 11:29:15