Chese Queue

https://vjudge.net/problem/UVA-11538
題意:輸出nm棋盤(pán)上放置兩個(gè)互相攻擊的皇后的個(gè)數(shù)。
題解:
分三種情況:1 、在同一行上放皇后,A(n,m)種
2、在同一列放皇后,B(n,m)種
3、在斜對(duì)角線(xiàn)上放皇后,D(n,m)種
其中,A(n,m)=n
m(m-1):先選其中一行,共有n種選擇,然后在m列中進(jìn)行排列。
同理,B(n,m)=m
n(n-1).
對(duì)于情況3,假設(shè)n<=m;所有/方向的對(duì)角線(xiàn),從左到右的長(zhǎng)度為1,2,3,……n-1,n,n,……n,n(m-n+1個(gè)n),n-1,n-2,n-3……,3,2,1;
對(duì)于長(zhǎng)度為i的對(duì)角線(xiàn),進(jìn)行排列,i
(i-1)種方式。
那么這種對(duì)角線(xiàn)總和為:


由于有兩種對(duì)角線(xiàn),還要乘以2

#include<stdio.h>
#include<algorithm>
#include <string.h>
using namespace std;
typedef long long LL;
int main()
{
   LL n,m,ans;
   while(scanf("%lld%lld",&n,&m)!=EOF,n+m)
   {
       ans=n*m*(m-1)+m*n*(n-1);
       if(n>m) swap(n,m);
       printf("%lld\n",ans+2*n*(n-1)*(2*n-4)/3+2*(m-n+1)*n*(n-1));
   }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容