蒜头君下棋
m,n都很大,我們會發(fā)現(xiàn)棋子放在白格子或者黑格子都不會互相攻擊,但是有特殊情況需要考慮,一種就是如果之后一行或者一列,很顯然這一行或者一列都可以放棋子,如果行數(shù)或者列數(shù)為2,那么我們可以將一個田字格放滿,然后隔一個田字格不放任何東西,然后在繼續(xù)放,以此類推。
(
#include<cstdio> #include<algorithm> using namespace std; int main() {int t,n,m;int k=1;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);printf("Case %d: ",k++);if(n>m)swap(n,m);if(n==1)printf("%d\n",m);else if(n==2){if(m%4==3)printf("%d\n",(m/4)*4+4);elseprintf("%d\n",(m/4)*4+(m%4)*2);}elseprintf("%d\n",(n*m+1)/2);}return 0;}總結(jié)