题意:nxm的棋盘,放2个皇后(黑后和白后),皇后在同一行,同一列,同斜对角线的情况有多少种
题解:同行的有n*m*(m-1),同列计算方法类似,同斜线的话:
/斜线长度分类分别有长度为 1,2,3....n-1,n,n,n..n,n-1,...2,1(m-n+1个n)
斜线长度为i,则有i*(i-1)种...
(具体题解参考蓝书p106,例题1)
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
unsigned long long n,m;
while(cin >> n >> m) {
if(!n && !m) break;
if(n > m) swap(n,m);
cout << n*m*(m+n-2)+2*n*(n-1)*(3*m-n-1)/3 << endl;
}
return 0;
}