zoukankan
html css js c++ java
HDU2855 Fibonacci Checkup 矩阵的应用
/* 两个数论公式: f(k) = ( (1+sqrt(5)) / 2 ) ^ k - ( (1-sqrt(5)) / 2) ^ k (1+a)^n = Sum(C(k|n) * (a^k)) 推导过程: Sum(C(k|n) * f(k)) = Sum(C(k|n) * ( (1+sqrt(5)) / 2 ) ^ k - ( (1-sqrt(5)) / 2) ^ k) = Sum(C(k|n) * (1+sqrt(5)) / 2 ) ^ k) - Sum(C(k|n) * (1-sqrt(5)) / 2 ) ^ k) = ( (3+sqrt(5)) / 2 ) ^ k - ( (3-sqrt(5)) / 2) ^ k = ( (1+sqrt(5)) / 2 ) ^ 2k - ( (1-sqrt(5)) / 2) ^ 2k = f(2k) 构造矩阵是浮云 Fn(1,2) = |f(n) f(n-1)| F1(1,2) = |f(1) f(1)| = |1 0| A(2,2) = |1 1| |1 0| */ #include "Mat.h" #include <iostream> using namespace std; int main() { Mat A(2,2),F(1,2); int t, n; scanf("%d", &t); while(t--) { scanf("%d%d", &n, &mod); if(n == 0) { printf("0\n"); continue; } A.clear(2);A.s[1][1] = 0; F.clear(1); A.Er_work(n*2-1); F.Multiply(A); printf("%d\n", F.s[0][0]); } return 0; }
查看全文
相关阅读:
How to import data from Oracle into PostgreSQL(转)
C++——算法 回溯 八皇后问题
Python——彩图变线稿
算法——二叉树的遍历 前序 中序 后序 广度优先 深度优先 (转)
C++——计数排序 (转)
C++——位运算相关 (转)
C++——std::vector相关 (转)
C++——双指针 (转)
C++——求三数之和,实操从低效做法逐步提升到高效做法,受益良多
C++——基础容器
原文地址:https://www.cnblogs.com/windmissing/p/2559892.html
最新文章
微电子IC产品
什么是L1/L2/L3 Cache?
golang 读取文件
golang 写文件4种方式
golang 之GPM模型
golang中sync.map的实现
golang垃圾回收
redis之zset解析
redis之set解析
redis之hash解析
热门文章
redis之list解析
redis之string解析
性能监控系统 JMeter+InfluxDB+Grafana
Jmeter分布式压测
测试资料博主推荐
python+requests auth认证
Http、Https、Websocket、Socket、Socks的总结
vue3.0 时间戳转时间
RHEL 8配置yum源
MariaDB maxscale maxctrl维护命令
Copyright © 2011-2022 走看看