#6470. 大真菌 (BigFungus)
大真菌 (BigFungus)
题目 4:大真菌 (BigFungus)
| 属性 | 规格 |
|---|---|
| 输入文件 | 标准输入 (Standard Input) |
| 输出文件 | 标准输出 (Standard Output) |
| 时间限制 | 1.0 秒 |
| 内存限制 | 1024 MB |
题目描述
你在一个补丁(区域)中种植一种特殊的真菌。该区域是一个 的矩形网格。
- 初始状态:在第 0 分钟,网格左上角的单元格 有 1 单位真菌,其他位置为 0。
- 增长规则:每一分钟,每个单元格中的真菌数量会增加其相邻单元格(共享一条边的单元格)中真菌数量的总和。
- 目标:计算 分钟后,整个网格中真菌的总量。
输入格式
输入只有一行,包含三个整数 ()。
- :总分钟数。
- :网格的列数和行数。
输出格式
输出一个整数,代表 分钟后真菌的总量。由于结果可能非常大,请输出其对 1,000,000,007 取模后的余数。
计分说明
- 子任务 1 (10 分):样例测试。
- 子任务 2 (10 分):。
- 子任务 4 (10 分):。
- 子任务 8 (30 分):无额外限制。
- 其他子任务涉及特定的行列限制(如 或 )。
样例
| 标准输入 | 标准输出 | 解释 |
|---|---|---|
3 2 2 |
27 |
详见下方过程 |
2 3 2 |
10 |
- |
4 5 6 |
177 |
样例 1 增长过程模拟 ( 网格):
- 0 min:
[[1, 0], [0, 0]](总量 1) - 1 min: 每个格子加上邻居。
- (1,1) 新值 = 1 + (右0 + 下0) = 1
- (1,2) 新值 = 0 + (左1 + 下0) = 1
- (2,1) 新值 = 0 + (上1 + 右0) = 1
- (2,2) 新值 = 0 + (上0 + 左0) = 0
- 网格:
[[1, 1], [1, 0]](总量 3)
- 2 min:
- (1,1) = 1 + (1+1) = 3
- (1,2) = 1 + (1+0) = 2
- (2,1) = 1 + (1+0) = 2
- (2,2) = 0 + (1+1) = 2
- 网格:
[[3, 2], [2, 2]](总量 9)
- 3 min:
- (1,1) = 3 + (2+2) = 7
- (1,2) = 2 + (3+2) = 7
- (2,1) = 2 + (3+2) = 7
- (2,2) = 2 + (2+2) = 6
- 网格:
[[7, 7], [7, 6]](总量 27)
