本文最后更新于:2020年4月11日 下午

问题描述

  • 你有若干个L形的俄罗斯方块

  • 至少同时使用两次,以确定是否可以无间隙地填充 $n\times m$ 的矩形字段。

  • 块可以旋转,但不能翻转,堆叠或移出字段。

问题分析

首先,$n\times m$必须为8的倍数。

$2×4$别无选择,只能放置两个相同的块,其中之一不能使用。

从$2×8$开始,您可以翻转$2\times4$并留下另一个。

当一个是8的倍数时,
可以创建$3\times8$和$2\times8$,因此可以创建所有(5个或更多)$\times8$。
因此只有$1\times8$是没有用的。

当一个是2的倍数时,另一个是4的倍数,因此您
只需要考虑到$2\times4$,而不能只进行$2\times4$。可以做成其他的。

如果两者均为4的倍数,则可以展开$2\times4$。

$Code$

bool ok(int n, int m){
	if((ll)n * m % 8 || n == 1 || m == 1) return 0;
	return !(n == 2 && m == 4) && !(n == 4 && m == 2);
}
int main(){
	int c; cin >> c;
	while(c--){
		int n, m; cin >> n >> m;
		cout << (ok(n, m) ? "Possible" : "Impossible") << endl;
	}
	return 0;
}

本文在 CC BY-NC-ND 4.0( https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh )协议 的前提下,禁止超过文章30%字数的摘录(对于不超过文章30%字数的摘录,要求在醒目位置注明原文作者与原文链接),同时,在未经作者本人手写签名许可的情况下,禁止任何形式的全文转载,禁止发布任何基于本文的再创作。

题解 AT1360 【双子とスイカ割り】 上一篇
题解 AT865 【お風呂は気持ちいい】 下一篇
本博客采用 xCss 的 Valine 评论系统,搭配了 Valine-Admin,垃圾评论将会被过滤。所以在评论的时候,请注意您的语言。如果您的评论被过滤但并非垃圾评论,请发邮件到 luosiweimail@gmail.com 进行申诉。