计蒜客 蒜头君下棋
下图国际象棋棋盘
相同颜色上面放置马都不会相互攻击!!!
设$n\leq m$有特殊情况:
1. 当n=1,答案为m
2.当n=2,每次填满一个田字格,隔一个田字格,再填下一个...
3.当n>2,答案为(n*m+1)/2
AC代码
#include <stdio.h> #include <algorithm> using namespace std; int main() { int n, m; while(scanf("%d%d", &n, &m) == 2) { int ans; if(n > m) swap(n, m); if(n == 1) ans = m; else if(n == 2) { if(m % 4 == 3) ans = (m/4)*4 + 4; else ans = (m/4)*4 + (m%4)*2; } else { ans = (n*m+1)/2; } printf("%d\n", ans); } return 0; }
如有不当之处欢迎指出!