循环节 + 矩阵快速幂 - HDU 4291 A Short problem
2014-03-08 17:58
239 查看
A Short problem
Problem's Link
[b]Mean:[/b]给定一个n,求:g(g(g(n))) % 1000000007
其中:g(n) = 3g(n - 1) + g(n - 2),g(1) = 1,g(0) = 0
[b]analyse:[/b]
很经典的题。
由于n特别大,直接求肯定不行。由于所有的模运算都会出现循环节,可以求出循环节。
由于模数是固定的,可以在本地暴力求出循环节。
对于1000000007,求得循环节为222222224;
对于222222224,求得循环节183120;
最内层对183120取模,将值传给第二层;第二层对222222224取模,将值传给最外层;最外层对1000000007。
这样就大大降低了时间复杂度。
根据递推式构造矩阵,使用矩阵快速幂来求a
.
[b]Time complexity: O(N)[/b]
[b]view code[/b]
相关文章推荐
- 日记
- Samrt
- Godot教程中文版-脚本(Scripting)
- zoj3759(待解决+算法木有问题+but需要java大数)
- 用Bitmap Font Generator 制作自己的 *.fnt 字体 用于CCLabelBMFont的创建使用
- SVN服务器搭建和使用(三)
- cocos2d-html5 游戏实战源代码大集合和下载(包括flappy,popstar等----持续更新中----)
- 未来的Web:九个不可思议的WebGL应用试验
- Flash Builder 开发视频播放器客户端(FlvPlayer.mxml)
- SVN服务器搭建和使用(二)
- android中slidemenu的开源项目的学习
- 【Ext JS 4】组件查找_ComponentQuery类
- SVN服务器搭建和使用(一)
- Android 亲测源码分享
- IE9 BUG overflow :auto 底部空白解决方案
- 发现CSDN发带图片的博文好麻烦,测试一下51的
- 二周 项目5 点结构体与枚举
- 算法杂货铺——k均值聚类(K-means)
- 分享几个cocos2d-x游戏源码【一直收集】
- nyoj-cigarettes