UVA 11538(Chess Queen-矩阵对角线长度)

来源:互联网 发布:三星打印机m2070端口 编辑:程序博客网 时间:2024/05/21 11:08

Problem A
Chess Queen
Input:
Standard Input

Output: Standard Output

 

王后互相攻击的前提是在一行,一列,或一对角线。:

 

在 (NxM) 的棋盘上 2 王后互相攻击,求方案数.

 

Input

 

输入数据不超过 5000 行 ,每行为M and N (0< M, N£106) ,数据以0 0结尾.

 

Output

 

每行一个整数表示方案数,保证它在u64范围内.

 

Sample Input                              Output for Sample Input

2 2

100 223

2300 1000

0 0

12

10907100

11514134000                                                                        

 

Problemsetter: Shahriar Manzoor

Special Thanks to: Mohammad Mahmudur Rahman


首先,一个矩形的长宽若为m,n(m>=n)

那么它一个方向的对角线应为1..(n-1)各2条,n有(m-n+1)条

知道这个的化,本题就转化为,在一列一行或一对角线任取2点,有几种取法。

#include<cstdio>#include<algorithm>#include<functional>#include<iostream>#include<cstdlib>#include<cstring>using namespace std;#define MAXN (1000000+10)unsigned long long n,m;int main(){while (cin>>n>>m&&n&&m){if (n>m) swap(n,m);cout<<n*m*(n+m-2)+2*n*(n-1)*(3*m-n-1)/3<<endl;}return 0;}