矩陣快速冪及斐波那契數列模板

本篇博客先給出矩陣快速冪以及利用矩陣快速冪求斐波那契數列的模板,講解待更新……?

const int N=10;
int tmp[N][N];
void multi(int a[][N],int b[][N],int n)
{memset(tmp,0,sizeof tmp);for(int i=0;i<n;i++)for(int j=0;j<n;j++)for(int k=0;k<n;k++)tmp[i][j]+=a[i][k]*b[k][j];for(int i=0;i<n;i++)for(int j=0;j<n;j++)a[i][j]=tmp[i][j];
}
int res[N][N];
void Pow(int a[][N],int n)
{memset(res,0,sizeof res);//n是冪,N是矩陣大小for(int i=0;i<N;i++) res[i][i]=1;while(n){if(n&1)multi(res,a,N);//res=res*a;復制直接在multi里面實現了;multi(a,a,N);//a=a*an>>=1;}
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2;
const int MOD=1000000009;
struct mat
{ll a[N][N];
};
mat mat_mul(mat x,mat y)
{mat res;memset(res.a,0,sizeof(res.a));for(int i=0;i<2;i++)for(int j=0;j<2;j++)for(int k=0;k<2;k++)res.a[i][j]=(res.a[i][j]+x.a[i][k]*y.a[k][j])%MOD;return res;
}
void mat_pow(ll n)
{mat c,res;c.a[0][0]=c.a[0][1]=c.a[1][0]=1;c.a[1][1]=0;memset(res.a,0,sizeof(res.a));for(int i=0;i<2;i++) res.a[i][i]=1;while(n){if(n&1) res=mat_mul(res,c);c=mat_mul(c,c);n=n>>1;}printf("%I64d\n",res.a[0][1]);
}
int main()
{ll n;scanf("%lld",&n);mat_pow(n);return 0;
}

?

轉載于:https://www.cnblogs.com/aerer/p/9930934.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396439.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis-3.2主從復制與集群搭建 推薦

Redis-3.2主從復制與集群搭建 一、Redis 主從搭建 1.下載并解壓 yum install -y gcc gcc-c pcre zlib pcre-devel tcl wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz cd redis-3.2.4 make cd src && make test &&am…

AutoMapperHelper

/// <summary>/// AutoMapper幫助類/// </summary>public static class AutoMapperHelper{/// <summary>/// 單個對象映射/// </summary>public static T MapTo<T>(this object obj){if (obj null) return default(T);Mapper.CreateMap(obj.Ge…

web項目開發人員配比_我如何找到Web開發人員的第一份工作

web項目開發人員配比I have always had an interest in coding for the web. I built my first site almost 15 years ago using Yahoo’s Geocities, which allowed HTML styling and a few layout choices.我一直對網絡編碼感興趣。 大約15年前&#xff0c;我使用Yahoo的Geoc…

蘋果手機輸入屏保后鎖屏_修一塊手機屏幕要7080元?

這幾天華為Mate X的兩次開售成為大家議論的話題&#xff0c;一些搶到的人自然沉浸在快樂之中&#xff0c;想著是自己留著用&#xff0c;還是轉手賺一把。而一些想搶而沒搶到的人或許正在研究如何在明天的第三次開售中抓好機會吧&#xff01;當然&#xff0c;也有像小編這樣的&a…

中間介(MiddleWare)

引子-Django的生命周期 在學習中間介之前&#xff0c;我們先來回顧一下Django的生命周期&#xff1a;用戶發起請求&#xff0c;請求會被發送到urlconf中的url&#xff0c;然后會指向對應的views函數進行處理&#xff0c;views函數處理完成后&#xff0c;用模板渲染好html&#…

對MariaDB10.0的Sphinx進行擴展

已修改過的文件&#xff1a;http://pan.baidu.com/s/1o8DHvkA 將這兩個文件放到MariaDB的解壓目錄后&#xff0c;再進行安裝 /usr/local/mariadb-10.0.28/storage/sphinx/ 如下是修改的代碼 get_rec ( byte * buf, const byte * key, uint keylen,uint a,uint b,uint c );index…

C++常用特性原理解析

在我的早期印象中&#xff0c;C這門語言是軟件工程發展過程中&#xff0c;出于對面向對象語言級支持不可或缺的情況下&#xff0c;一群曾經信誓旦旦想要用C統治宇宙的極客們妥協出來的一個高性能怪咖。 它駁雜萬分&#xff0c;但引人入勝&#xff0c;出于多(mian)種(shi)原因&a…

容器created狀態_docker容器狀態的轉換實現

一 docker容器狀態轉換圖二 實戰[rootlocalhost ~]# docker infoContainers: 0Running: 0Paused: 0Stopped: 0Images: 3Server Version: 17.09.0-ceStorage Driver: overlayBacking Filesystem: xfsSupports d_type: falseLogging Driver: json-fileCgroup Driver: cgroupfsPlu…

nodejs命令行執行程序_在NodeJS中編寫命令行應用程序

nodejs命令行執行程序by Peter Benjamin彼得本杰明(Peter Benjamin) 在NodeJS中編寫命令行應用程序 (Writing Command-Line Applications in NodeJS) With the right packages, writing command-line apps in NodeJS is a breeze.有了合適的軟件包&#xff0c;用NodeJS編寫命令…

python re findall 效率_python re模塊findall()詳解

今天寫代碼&#xff0c;在寫到鄭澤的時候遇到了一個坑&#xff0c;這個坑是re模塊下的findall()函數。下面我將結合代碼&#xff0c;記錄一下importrestring"abcdefg acbdgef abcdgfe cadbgfe"#帶括號與不帶括號的區別#不帶括號regexre.compile("((\w)\s\w)&quo…

ubuntu16.04配置sonarqube+MySQL

環境&#xff1a;rootubuntu:~# uname -a Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux rootubuntu:~# rootubuntu:~# cat /etc/issue Ubuntu 16.04 LTS \n \lrootubuntu:~#安裝配置mysql&#xff1a;1、更新源…

mysql 多表混全_mysql--淺談多表查詢1

這是對自己學習燕十八老師mysql教程的總結&#xff0c;非常感謝燕十八老師。依賴軟件&#xff1a;mysql5.6系統環境&#xff1a;win連接查詢在談連接查詢之前我們需要對數學上的笛卡爾積有一定的了解現在有兩個集合m和nm (m1,m2,.....mx)n (n1,n2,.....ny)m*n得到的笛卡爾積有…

鼠標固定在屏幕中間_無線電競黑科技,雷柏VT950Q游戲鼠標評測

雷柏作為目前小有聲譽的PC外設品牌&#xff0c;其定位高性能游戲領域的VT系列產品&#xff0c;想必大家也比較熟悉了。VT系列的產品除了有超強的性能以及出色的設計感&#xff0c;同時還都是性價比非常高的產品&#xff0c;即便是采用了旗艦級傳感器&#xff0c;定位最為高端的…

談論源碼_5,000名開發人員談論他們的薪水

談論源碼Let’s dive into the most interesting results from the O’Reilly 2016 Salary Survey of 5,000 developers (which excluded managers and students).讓我們來看看OReilly 2016年薪金調查對5,000名開發人員(其中不包括經理和學生)最有趣的結果。 性別工資差距是真…

WebSnapshotsHelper(HTML轉換為圖片)

1 /// <summary>2 /// WebBrowser Url生成圖片3 /// HTML轉圖片4 /// </summary>5 public class WebSnapshotsHelper6 {7 Bitmap m_Bitmap;8 string m_Url;9 int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth,…

兩個多項式相乘求解系數數組算法

題目描述&#xff1a; 給出兩個多項式&#xff0c;最高次冪分別為n和m&#xff0c;求解這兩個系數相乘得到的系數數組。 分析&#xff1a; 最高次冪如果是m和n&#xff0c;那么他們相乘得到的系數數組的最高次冪一定是nm&#xff0c;對于其他的系數&#xff0c;不妨設a[],b[]是…

synchronized 和 reentrantlock 區別是什么_JUC源碼系列之ReentrantLock源碼解析

目錄ReentrantLock 簡介ReentrantLock 使用示例ReentrantLock 與 synchronized 的區別ReentrantLock 實現原理ReentrantLock 源碼解析ReentrantLock 簡介ReentrantLock 是 JDK 提供的一個可重入的獨占鎖&#xff0c;獨占鎖&#xff1a;同一時間只有一個線程可以持有鎖可重入&am…

gulp 和npm_為什么我離開Gulp和Grunt去看npm腳本

gulp 和npmI know what you’re thinking. WAT?! Didn’t Gulp just kill Grunt? Why can’t we just be content for a few minutes here in JavaScript land? I hear ya, but…我知道你在想什么 WAT &#xff1f;&#xff01; 古爾普不是殺死了咕unt嗎&#xff1f; 為什么…

mysql8.0遞歸_mysql8.0版本遞歸查詢

1.先在mysql數據庫添加數據DROP TABLE IF EXISTS dept;CREATE TABLE dept (id int(11) NOT NULL,pid int(11) DEFAULT NULL,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,date datetime(0) DEFAULT NULL,PRIMARY KEY (id) USING BTREE) ENGINE…

js 輪播插件

flexslider pc插件 個人用過flickerplate 移動端插件 個人用過個人覺得比較好的移動端插件swiper http://www.swiper.com.cn/ 用過個人覺得比較好的pc端插件待定