HDU 6198 number number number【找規律+矩陣快速冪】
題意:從含0的斐波那契數列中可重複的任取K個數,求這K個數的和無法形成的最小整數。
寫了幾個之後大膽的猜測
#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 6198】number 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
【遞推+矩陣快速冪】【HDU2604】【Queuing】
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3032 Accepted Subm
POJ 2778 DNA Sequence【AC自動機+矩陣快速冪】
題意:給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