码迷,mamicode.com
首页 > 其他好文 > 详细

11.02B

时间:2018-11-03 02:25:53      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:输入格式   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

思路

1.40%数据

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

2.70%数据

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

3.100%数据

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

11.02B

标签:输入格式   json   排列   枚举   100%   固定   矩阵快速幂   数据   快速幂   

原文地址:https://www.cnblogs.com/ullio/p/9899173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!