码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 278 - Chess(数论)

时间:2014-04-29 13:45:20      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   2014   

题目链接:278 - Chess

题意:求出四种棋子最多放几个
思路:车能放行列的较小值,王隔着放,皇后根据八皇后问题可知,也是放行列最小值。
关键在于马,之前做过一题类似的,马分一行,两行,和两行以上考虑,一行就能全放,两行就隔一个田字格放,三行以上就每个马隔一个位置放。
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;

int t, n, m;
char s[2];

int solve() {
    if (s[0] == ‘r‘)
	return min(n, m);
    if (s[0] == ‘k‘) {	
	if (n == 1) return m;
	if (m == 1) return n;
	if (n == 2)
	    return (m / 2 * 2 + m % 2 * 2);
	if (m == 2)
	    return (n / 2 * 2 + n % 2 * 2);
	return (n * m + 1) / 2;
    }
    if (s[0] == ‘Q‘)
	return min(n, m);
    if (s[0] == ‘K‘)
	return (n + 1) / 2 * ((m + 1) / 2);
}

int main() {
    scanf("%d", &t);
    while (t--) {
	scanf("%s%d%d", s, &n, &m);
	printf("%d\n", solve());
    }
    return 0;
}


UVA 278 - Chess(数论),码迷,mamicode.com

UVA 278 - Chess(数论)

标签:style   blog   http   color   io   2014   

原文地址:http://blog.csdn.net/accelerator_/article/details/24633925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!