给你 $t$ 组数据。对于每组数据给你一个 $n \times m$ 的网格($n$ 为网格高度,$m$ 为网格宽度,且网格的数量为偶数),要求在网格中放置多米诺骨牌,每个骨牌占据 $1\times2$ 的网格区域。对于这 $\frac{nm}{2}$ 个骨牌,要求正好有 $k$ 个横着放置,而剩下的 $\frac{nm}{2}-k$ 个竖着放置,正好铺满台面。现在要你给出对于每组 $n$, $m$ 和 $k$,是否有一种方案满足条件。如果有,输出 YES
,反之输出 NO
。
Domino (easy version)
Domino (easy version)
Created by LXC on Fri Mar 8 16:03:22 2024
https://codeforces.com/problemset/problem/1551/D1
ranting: 1700
tag: constructive algorithms, math
problem
给你 $t$ 组数据。对于每组数据给你一个 $n \times m$ 的网格($n$ 为网格高度,$m$ 为网格宽度,且网格的数量为偶数),要求在网格中放置多米诺骨牌,每个骨牌占据 $1\times2$ 的网格区域。对于这 $\frac{nm}{2}$ 个骨牌,要求正好有 $k$ 个横着放置,而剩下的 $\frac{nm}{2}-k$ 个竖着放置,正好铺满台面。现在要你给出对于每组 $n$, $m$ 和 $k$,是否有一种方案满足条件。如果有,输出 YES
,反之输出 NO
。
solution
对于n为奇数,m为奇数,没有答案。
对于n为奇数,m为偶数,至少有一行要为水平放置,所以$m/2 \le k \le m/2*n$且$k-m/2$为偶数。
对于n为偶数,至多有$\lfloor \frac{m}{2} \rfloor n$个水平块,且$k$为偶数。
code
1 |
|