标签:输入格式 json 排列 枚举 100% 固定 矩阵快速幂 数据 快速幂
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
暴力
期望复杂度 $ \Theta \left( 玄学 \right) $
考虑dp
dp[i][j][k] 表示走了i步,起点在j终点在k的方案数
dfs枚举全排列
期望复杂度 $ \Theta \left( 81n \right) $
考虑优化dp转移
很明显一个点朝其他点转移的状态量小且固定
利用矩阵快速幂优化掉n
期望复杂度 $ \Theta \left( 9^{3} \log n \right) $
标签:输入格式 json 排列 枚举 100% 固定 矩阵快速幂 数据 快速幂
原文地址:https://www.cnblogs.com/ullio/p/9899173.html