#P9318. [EGOI2022] Lego Wall / 乐高墙

[EGOI2022] Lego Wall / 乐高墙

题目背景

Day 1 Problem B.

题面译自 EGOI2022 legowall

题目描述

有两种乐高积木,大小分别为 1×1×11\times 1\times 12×1×12\times 1\times 1(宽、高、长)。两种积木你都有无限个,每种积木的所有积木块没有任何区别。

一个积木块总是以正确的方向使用。四周的面是用同一种材料制成的,除了大小以外没有区别。

我们称两个积木块锁死,当且仅当一个块在另一个块的正上方。称两个积木块 b0b_0bkb_k 连通,当且仅当存在一个积木块序列 b0,b1,,bkb_0,b_1,\ldots,b_k,使得任意相邻积木块 bi1b_{i-1}bib_i 锁死。我们称一组积木块连通,当且仅当组内的每一对积木块都连通。

你希望搭建一个大小为 w×h×1w\times h\times 1 的积木墙,使得这面墙没有洞连通。以下是 4×3×14\times 3\times 1 的积木墙的例子:

另一方面,下面的 4×3×14\times 3\times 1 的积木墙不连通,因此不被需要:

有多少种搭建没有洞连通的积木墙的方案呢?答案可能很大,请输出它对 109+710^9+7 取模的结果。

注意一个积木墙的镜像版本(旋转 180180^\circ)和原来的版本被认为不同,除非他们看起来一模一样。

输入格式

一行,两个整数 w,hw,h——积木墙的宽度和高度。

输出格式

一行,一个整数,表示方案数对 109+710^9+7 取模的结果。

2 2
3
3 3
12
5 7
1436232

提示

样例 11 解释

三种方案如图所示:


数据范围

对于全部数据,1w2.5×1051\le w\le 2.5\times 10^52h2.5×1052\le h\le 2.5\times 10^5w×h5×105w\times h\le 5\times 10^5

  • 子任务一(1414 分):w=2w=2
  • 子任务二(1212 分):h=2h=2
  • 子任务三(1818 分):w,h100w,h\le 100
  • 子任务四(3030 分):w700w\le 700
  • 子任务五(2020 分):h700h\le 700
  • 子任务六(66 分):无特殊限制。