11.02B

Posted ullio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.02B相关的知识,希望对你有一定的参考价值。

题目描述

9 个机器人,在 3 * 3 的方格里,一开始 9 个机器人分别站在 9 个格子上,每一步机器人可
以往临近的一个格子移动或留在原地(同一个格子可以有多个机器人停留),经过 n 步后有
多少种不同的走法,使得每个格子上都有 1 机器人停留。由于方法数量巨大,输出 Mod
10^9 + 7 的结果。

输入输出格式

输入格式

第一行包含一个整数 n。

输出格式

输出一行输出走法的数量 Mod 10^9 + 7

数据范围

对于 40%的数据,1 <= n<= 10;
对于 70%的数据,1 <= n <= 10^6;
对于 100%的数据,1 <= n <= 10^18。

样例

样例一输入:

1

样例一输出:

299

思路

1.40%数据

暴力
期望复杂度 $ Theta left( 玄学 ight) $

2.70%数据

考虑dp
dp[i][j][k] 表示走了i步,起点在j终点在k的方案数
dfs枚举全排列
期望复杂度 $ Theta left( 81n ight) $

3.100%数据

考虑优化dp转移
很明显一个点朝其他点转移的状态量小且固定
利用矩阵快速幂优化掉n
期望复杂度 $ Theta left( 9^{3} log n ight) $

以上是关于11.02B的主要内容,如果未能解决你的问题,请参考以下文章

11.02-解决连续数组最大子数组和

python+spark程序代码片段

apriori片段代码

片段 A 的列表视图中的片段 B 中的新列表视图,单击 A 的列表项

使用嵌套片段和动画对象

编写代码片段的更简洁的方法