2018 蓝桥杯省赛 B 组模拟赛(五)H. 程序设计:蒜头君下棋


       题目链接: https://nanti.jisuanke.com/t/25091

       这道题在做的时候以为和八皇后一样是道搜索题,赛后看了题解才知道是个找规律的题。当棋盘只有一行的时候,把所有点都放上马就行了,当棋盘有两行的时候,规律是放两行空两行,当行数大于2的时候,棋盘是这样的,马每次会从白色跳到黑色或者从黑色跳到白色,所以刚开始都摆到一个颜色上面就好了。

       对于第一种情况直接输出m,对于第二种情况,你要考虑m有多长,把OOXX算做一组,然后用m/4算出来有几组,然后因为一组能放4个,所以再乘4,然后再考虑边界,当m%4<2的时候,只能放2*(m%4)个,当m%4>=2的时候最多也只能放2*2个。对于第三种情况就很好解决了,输出n*m+1。细节问题挺多的,比如我自定义了个Min函数就只过了9组样例,还要记得如果n>m的话要交换一下。


AC代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
    if(n>m)swap(n,m);
	if(n == 1){
		printf("%d\n",m);
	}
	else if(n == 2){
		printf("%d\n",m / 4 * 4 + min(m % 4, 2) * 2);
	}
	else{
		printf("%d\n",(n * m + 1) / 2);
	}
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值