runxinzhi.com
首页
百度搜索
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; }
相关阅读:
如何在winform的numericUpDown中显示小数点
Jquery attr 和removeAttr 的简单使用
Linux下的多进程编程初步(转载)
扩展GCD和线性模方程组
05、Flutter常用组件
12、Flutter组件装饰
10、Flutter资源和图片
09、Flutter手势控制
04、FlutterDart语法
07、FluterCupertino
原文地址:https://www.cnblogs.com/windmissing/p/2559894.html
最新文章
Time时间戳转换
android布局
解决 ie6 下弹出框随着滚动条不断抖动
js 取得数组中的最大值和最小值(含多维数组)
js关于document和window对象
10个非常有用的CSS hack和技术
图片放大镜效果 jquery实现
简单瀑布流jquery实现
css hack
ie6 下fixed 定位 js
热门文章
jquery 抽奖
js call
用Juery实现网页选项卡
winform中dataGridView绑定DataTable中的详细信息
Xml中SelectSingleNode方法中的xpath用法
winform中的DataGridView中实现鼠标进入某一单元格时改变鼠标形状
如何实现combox 自动匹配查找
dgv禁用排序
winForm中base64解码
如何获取xml任意节点中某个属性值
Copyright © 2020-2023
润新知