题目大意:
给出一个
n
×
m
n \times m
n×m的棋盘,需要用
1
×
2
1\times2
1×2的格子去填满它,并且要保证有
k
k
k个格子是横放,判断是否可能
1:
n
,
m
n,m
n,m均为偶数
若
k
k
k为偶数,我们可以把棋盘划分为若干个
2
×
2
2\times2
2×2的方格,任意两个
1
×
2
1\times2
1×2的格子(无论横放还是竖放)都能组成这样一个方格。显然,这是成立的。
若
k
k
k为奇数,每一列中,属于竖放的单元格子数量为偶数,所以属于横放的单元格子数量也是偶数。但由于横放的数量是奇数个,显然这是不可能的。
2:
n
n
n为奇数,
m
m
m为偶数
在这种情况下,每一列都有奇数的格子,属于竖放的格子数为偶数,所以属于横放的格子数为奇数。所以所,在每一列,只要要有一个格子是属于横放的。所以
k
>
=
m
/
2
k>=m/2
k>=m/2是
Y
E
S
YES
YES的条件之一。
由上面的情况说明,一种不坏的构造方法是第一行全部摆上横放的,这时,我们手上还有
k
−
m
/
2
k-m/2
k−m/2个横放的名额。此时第一列被全摆满了,所以可以忽视第一行。问题就转化成了
n
n
n为偶数,
m
m
m为偶数,在保证放
k
−
m
/
2
k-m/2
k−m/2个横格子的情况下是否能将棋盘放满,这就回到了问题1。
3:
m
m
m为奇数,
n
n
n为偶数
与情况2相同,转换一下棋盘即可
4:
m
m
m为奇数,
n
n
n为奇数
一共有奇数个格子,必然不能放满。