Skip to content

11996: 【原1996】二哥玩俄罗斯方块

题目

题目描述

author: qujun 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/1996

题目描述

作为一个玩俄罗斯方块的顶尖高手,二哥觉得仅仅是不断的重复游戏实在是太没意思了,蛋疼的二哥想找些新的乐趣,所以下面这个问题产生了。

现在给你一些俄罗斯方块游戏中的小方块,你需要求出用它们拼出一个\(N \times M\)的矩形的方法有多少种。在这里,方块不能重叠,方块不一定要用完,每种方块只能旋转0/90/180/270度,不能翻转。方块有以下7种,已经编号。

---------------

1:  ****
---------------

2:  **
    **
---------------

3:  *
    ***
---------------

4:    *
    ***
---------------

5:   *
    ***
---------------

6:  **
     **
---------------

7:   **
    **
---------------

我们认为两种方法不同,当且仅当存在一个格子,在两种方法中盖在这个格子上的方块不同。其中方块不同是指种类不同,或者种类相同但形态不同(比如第一种方块转0度和转90度形态不同,但是转0度和转180度是相同的)。

输入格式

输入共有两行。

第一行两个整数\(N\)和\(M\),表示需要拼出来的矩形的大小。

第二行,包含7个整数,依次表示编号从1到7这7种种类的方块的个数。

输出格式

输出一个整数表示不同的拼法有多少种。

数据范围

对于全部数据:\(1 \leq N \times M \leq 32\)。

样例输入

2 4
100 100 100 100 100 100 100

样例输出

4

限制

时间限制:2000ms,内存限制:65536kb

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!