zoukankan
html css js c++ java
HDU1588 Gauss Fibonacci 矩阵应用
/* 由f(n)=f(n-1)+f(n-2)构造矩阵 令 Fn(1,2) = |f(n) f(n-1)| A(2 2) = |1 1| |1 0| F1(1 2) = |1 0| Fn = F(n-1) * A = F1 * A ^ (n-1) 代入n = g(i) = k * i + b 得:Fn = F1 * A ^ (k * i + b - 1) 1)b > 1 Fn = F1 * A^(b-1) * (A^k)^i Sum(Fn) = F1 * A^(b-1) * Sum((A^k)^i) 2)b = 1 Fn = F1 * (A^k)^i Sum(Fn) = F1 * Sum((A^k)^i) 3)b = 0 Fn = F1 * A^(k-1) * (A^k)^i------------------n = n - 1 Sum(Fn) = F1 * A^(k-1) * Sum((A^k)^i)--------n = n - 1 其中Sum((A^k)^i)用solve进行二分求和 */ #include "Mat.h" #include <iostream> using namespace std; int main() { Mat A(2, 2), F1(1, 2), e(2, 2), ans(1, 2), temp(2, 2); int b, n, k; while(cin>>k>>b>>n>>mod) { //全1矩阵 A.clear(2);A.s[1][1] = 0; F1.clear(1); e.clear(1); ans.clear(); temp = A; if(b > 1) { temp.Er_work(b-1); F1.Multiply(temp); } else if(b == 0) { n--; temp.Er_work(k-1); F1.Multiply(temp); } A.Er_work(k); A.solve(n-1); A.Add(e); F1.Multiply(A); printf("%I64d\n",F1.s[0][0]); } return 0; }
查看全文
相关阅读:
PB数据窗口分页
Oracle创建视图权限不足
PB计算两个日期相差月份(计算工龄)
oracle笔记之计算年龄、工龄和TRUNC
oracle随笔之提示“ORA-01002: 提取违反顺序”
PB笔记之调用数据窗口时的过滤条件添加方式
Oracle随笔之用拆分后的列数据关联表查询
四种布局
Android控件常见属性
Activity启动活动最佳写法
原文地址:https://www.cnblogs.com/windmissing/p/2559894.html
最新文章
js -- 正则表达式集合
js -- 日期时间格式化
静态资源加载
解析Json文件
观察者模式
java生成/解析二维码
Spring定时任务的几种实现
linux中安装和配置 jdk
jdbc连接oracle时报错 Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableC
myeclipse使用git图文教程
热门文章
短信验证码
JBPM工作流(八)——流程实例(PI)Process Instance
ubuntu下安装wireshark(以及配置非root)
公钥、私钥、数字签名、数字证书
vim
临界数据、临界区和原子操作
Linux进程间通信——使用消息队列
SQLSERVER 根据值查询表名
SQLSERVER远程链接Oracle数据库
PB自动换行
Copyright © 2011-2022 走看看