1. 程式人生 > >HDU 6198 number number number【找規律+矩陣快速冪】

HDU 6198 number number number【找規律+矩陣快速冪】

題目連結

題意:從含0的斐波那契數列中可重複的任取K個數,求這K個數的和無法形成的最小整數。

寫了幾個之後大膽的猜測i的答案是F[2(i+1)+1]1… 於是矩陣快速冪……

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll mod=998244353;

struct Matrix{
    ll a[5][5];
    void init(){
        for (int i=0;i<5;i++){
            for (int j=0;j<5
;j++){ a[i][j]=0; } } } Matrix operator * (const Matrix &b) const{ Matrix tmp; tmp.init(); for (int i=1;i<=2;i++){ for (int j=1;j<=2;j++){ for (int k=1;k<=2;k++){ tmp.a[i][j]=(tmp.a[i][j]+a[i][k]*b.a[k][j]%mod+mod)%mod; } } } return
tmp; } }; ll mat_pow(ll n,Matrix mat){ Matrix ans; ans.init(); ans.a[1][1]=ans.a[2][2]=1; n-=2; while (n){ if (n&1) ans=ans*mat; n>>=1; mat=mat*mat; } return (ans.a[1][1]+ans.a[1][2])%mod; } int main(){ ll i; Matrix mat; mat.init(); mat.a[1
][1]=mat.a[1][2]=mat.a[2][1]=1; while (scanf("%lld",&i)!=EOF){ // cout<<mat_pow(i,mat)<<endl; ll ans=mat_pow((i+1)*2+1,mat); printf("%lld\n",ans-1); } }

相關推薦

HDU 6198 number number number規律+矩陣快速

題目連結 題意:從含0的斐波那契數列中可重複的任取K個數,求這K個數的和無法形成的最小整數。 寫了幾個之後大膽的猜測i的答案是F[2∗(i+1)+1]−1… 於是矩陣快速冪…… #includ

HDU 6172 Array Challenge (打表規律+矩陣快速 17多校第十場第2題)

題目連結 題意 分析 不得不佩服AC這道題的人腦洞,為什麼你們這麼熟練。。。打表找規律無所不能。 因為我們無法處理開方的取模問題,因此我們不能一步步求。我們令fn=⌊an−−√⌋,則打表

HDU 6198number number number 規律+矩陣快速

We define a sequence F: ⋅ F0=0,F1=1; ⋅ Fn=Fn−1+Fn−2 (n≥2). Give you an integer k, if a positive number n can be expressed by n=

hdu6198 number number number規律+矩陣快速

Problem Description We define a sequence F: ⋅ F0=0,F1=1; ⋅ Fn=Fn−1+Fn−2 (n≥2). Give you an integer k, if a positive number n ca

2017 Multi-University Training Contest 10 1002 Array Challenge HDU 6172(規律 矩陣快速)

題意:There’s an array that is generated by following rule.h0=2,h1=3,h2=6,hn=4hn−1+17hn−2−12hn−3−16And

HDU 6172 Array Challenge 規律+矩陣快速

題目 分析       這道題目一看就想到矩陣快速冪。可以先把hn算出來,進而把bn,an都算出來。但是發現一個問題,題目中是要求⌊an−−√⌋對1e9+7取模之後的值。但是開根號沒法取模啊,所

AC自動機+矩陣快速POJ - 2778 - DNA Sequence & HDU - 2243 - 考研路茫茫——單詞情結

POJ - 2778 - DNA Sequence 題目連結<http://poj.org/problem?id=2778> 題意: DNA序列只包含ACTG四個字元,已知一些病毒的DNA序列,問你序列長度為n(1 <= n <=2000000000)且不

HDU 6273 Master of GCD 差分思想+快速

思路: 記錄乘2次數最小的值和乘3次數最小的值再用快速冪求解這個大多數人都能想到,比較棘手的就是n和m都是10^5,如果某個區間一個個的遍歷去加1的話,會超時;這裡用到了差分思想; 假設對兩個區間操作  1 到 5 ,+1, 2 到 3, + 1,那麼有  1

51nod 非010串(dp規律+矩陣快速)

如果一個01字串滿足不存在010這樣的子串,那麼稱它為非010串。 求長度為n的非010串的個數。(對1e9+7取模) Input 一個數n,表示長度。(n<1e15) Output 長度為n的非010串的個數。(對1e9+7取模) Input示例 3 O

HDU6030-Happy Necklace-規律+矩陣快速

//傳送門:http://acm.hdu.edu.cn/showproblem.php?pid=6030 #include <iostream> #include <string.h

概率DP+矩陣快速 POJ - 3744 Scout YYF I

Scout YYF I  POJ - 3744  YYF is a couragous scout. Now he is on a dangerous mission which is to penetrate into the enemy's base. Afte

遞推+矩陣快速HDU2604Queuing

Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3032    Accepted Subm

POJ 2778 DNA SequenceAC自動機+矩陣快速

題意:給m個病毒字串,問長度為n的DNA片段有多少種沒有包含病毒串的。 首先解決這個問題:給定一個有向圖,問從A點恰好走k步(允許重複經過邊)到達B點的方案數mod p的值     把給定的圖轉為鄰接矩陣,即A(i,j)=1當且僅當存在一條邊i->j。令C=A*A,

AC自動機+矩陣快速 POJ 2778 DNA Sequence

先構建AC自動機,然後通過AC自動機構建矩陣,最後矩陣快速冪即可。。。 #include <iostream> #include <queue> #include <stack> #include <map>

2017 ACM/ICPC Asia Regional Shenyang Online:number number number hdu 6198矩陣快速

cpc 相同 exp -128 integer regional test atom online Problem Description We define a sequence F:? F0=0,F1=1;? Fn=Fn?1+Fn?2 (n≥2).Give you

1005 Number Sequence(長得像矩陣快速規律

A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to ca

矩陣快速HDU - 5950 C - Recursive sequence

C - Recursive sequence HDU - 5950 Farmer John likes to play mathematics games with his N cows. Recently, they are attracted by recursive sequences.

HDU 6172 Array Challenge推公式/猜+矩陣快速

題目連結 題意:給一堆公式,求⌊a[n]‾‾‾‾√⌋的值。 官方題解的公式推的實在是沒什麼道理,但是這個xjb亂猜我真的是一口老血噴出來。。。 令f(n)=⌊a[n]‾‾‾‾√⌋,則f(n)=4f

矩陣快速HDU 4549 : M斐波那契數列(矩陣巢狀)

【題目大意】 M斐波那契數列F[n]是一種整數數列,它的定義如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 現在給出a,

hdu-4549 M斐波那契數列矩陣快速

找規律寫出f(2),f(3),f(4),f(5) .........可以發先 a b的係數是一系列的fib數列   如果可以求出fib數列 求快速冪就可以了    這樣問題就在於如何求fib數列了                           1     1 【f[n