1. 程式人生 > >【HDOJ 1005】 Number Sequence (裸矩陣快速冪)

【HDOJ 1005】 Number Sequence (裸矩陣快速冪)

原諒我貼個水題。。。攢了一年的'恩怨'終於瞭解了 b( ̄▽ ̄)d

去年就接觸過矩陣快速冪 線代太弱  看他們程式碼沒參悟透。。可能真是悟性太差了。。

然後一隻以為矩陣快速冪是很叼的東西(不過確實很叼) 太高深 再沒敢碰。。有毒啊…………

直到最近比賽(VJ)出現矩陣快速冪的頻率太高了 今下午又來一道 金巨巨看我萬般費解 上來一張紙 一支筆 一個Fibonacci

妥妥的把矩陣快速冪給我講懂了 學好線代是多麼的重要。。。(~﹃~)~zZ

回來找了這麼個題練了練手 自己寫寫就是感覺不一樣 太有成就感了 弱渣的第一個矩快

丟水題程式碼跑掉ε=ε=ε=(~ ̄▽ ̄)~

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

typedef struct Matrix
{
    int mx[2][2];
    void Init(int a,int b)
    {
        mx[0][0] = a;
        mx[0][1] = b;
        mx[1][0] = 1;
        mx[1][1] = 0;
    }

    void Out()
    {
        for(int i = 0; i < 2; ++i)
        {
            for(int j = 0; j < 2; ++j)
                printf("%d ",mx[i][j]);
            puts("");
        }
    }

    struct Matrix operator * (const struct Matrix a)const
    {
        struct Matrix x;
        memset(x.mx,0,sizeof(x.mx));
        for(int i = 0; i < 2; ++i)
            for(int j = 0; j < 2; ++j)
                for(int k = 0; k < 2; ++k)
                    x.mx[i][j] = (x.mx[i][j]+mx[i][k]*a.mx[k][j])%7;
        return x;
    };
}Matrix;

Matrix pow(Matrix mx,int n)
{
    Matrix ans;
    ans.mx[0][0] = ans.mx[1][1] = 1;
    ans.mx[0][1] = ans.mx[1][0] = 0;
    while(n)
    {
        if(n&1) ans = ans*mx;
        mx = mx*mx;
        n >>= 1;
    }
    return ans;
}

int main()
{
    int n,a,b;
    while(~scanf("%d %d %d",&a,&b,&n) &&a)
    {
        if(n == 1)
        {
            puts("1");
            continue;
        }
        Matrix mx;
        mx.Init(a,b);
        mx = pow(mx,n-2);
        //mx.Out();
        printf("%d\n",(mx.mx[0][0]+mx.mx[0][1])%7);
    }
    return 0;
}


相關推薦

HDOJ 1005 Number Sequence 矩陣快速

原諒我貼個水題。。。攢了一年的'恩怨'終於瞭解了 b( ̄▽ ̄)d 去年就接觸過矩陣快速冪 線代太弱  看他們程式碼沒參悟透。。可能真是悟性太差了。。 然後一隻以為矩陣快速冪是很叼的東西(不過確實很叼) 太高深 再沒敢碰。。有毒啊………… 直到最近比賽(VJ)出現矩陣快速冪

HDU 1005 Number Sequence基礎矩陣快速

//HDU 1005 15MS 1424K #include <cstdio> #include <cstring> #include <cmath> #in

HDU 6395 Sequence數論+矩陣快速

Description 定義序列F1=A,F2=B,Fn=C⋅Fn−2+D⋅Fn−1+⌊Pn⌋F1=A,F2=B,Fn=C⋅Fn−2+D⋅Fn−1+⌊Pn⌋,求FnFn Input 第一行一整數T

Sequence分段+矩陣快速

Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1857    Accepted Subm

POJ2778 DNA Sequence AC自動機+矩陣快速

DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14224 Accepted: 5486 Description It’s well

UVA10870—Recurrences簡單矩陣快速

src logs aps 矩陣 矩陣快速冪 分享 pow sizeof set 題目鏈接:https://vjudge.net/problem/UVA-10870 題目意思: 給出a1,a2,a3,a4,a5………………ad,然後算下面這個遞推式子,簡單的矩陣快速冪,裸題,

Chinese Rings 九連環+矩陣快速

game 百度一 const problem scan make then indicate urn 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 題目: Problem Description Dumbear

ACM-ICPC 2018 焦作賽區網路預賽 L. Poor God WaterBM/矩陣快速

通過本題,學到了一個非常NB的黑科技,杜教BM線性遞推模板 直接打表打出前幾項,丟入BM模板就過了,非常神奇,非常強大 網上說BM板子一般8個以上就穩了,賽後試了一下,這個題要丟入前10個數據才能AC。 #include <cstdio> #includ

藍橋 壘骰子dp+矩陣快速

壘骰子賭聖atm晚年迷戀上了壘骰子,就是把骰子一個壘在另一個上邊,不能歪歪扭扭,要壘成方柱體。經過長期觀察,atm 發現了穩定骰子的奧祕:有些數字的面貼著會互相排斥!我們先來規範一下骰子:1 的對面是 4,2 的對面是 5,3 的對面是 6。假設有 m 組互斥現象,每組中的那

No more tricks, Mr Nanguo HDU - 3292pell + 矩陣快速

ger img map source ring rri fff gin bsp No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K

hdu6030推導+矩陣快速

Happy Necklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)

HDU 2602Bone Collector的01背包

c++ style memset its for get strong IE HA Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone C

1005Number Sequencehdu,數學規律題

his arch ear iostream tput ostream htm 數據 long Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (

ZOJ - 2836 Number Puzzle 容斥原理

題幹: Given a list of integers (A1, A2, ..., An), and a positive integer M, please find the number of positive integers that are not greater than M

HDU 1005 Number Sequence找規律,思維

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 153140    Accepted Submissio

BZOJ 2288 POJ Challenge生日禮物貪心+優先隊列

ace urn ons target challenge pri 最大 font return 【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2288 【題目大意】   給出一列數,求最多取m段

POJ 1716Integer Intervals差分約束系統

入門題 put AD edge ota 全部 lib 最小 最短 id=1716">【POJ 1716】Integer Intervals(差分約束系統) In

BZOJ1297[SCOI2009]迷路矩陣快速

class com ble cpp pre http 時間 new memset 【BZOJ1297】[SCOI2009]迷路(矩陣快速冪) 題面 BZOJ 洛谷 題解 因為邊權最大為\(9\),所以記錄往前記錄\(9\)個單位時間前的、到達每個點的方案數就好了,那麽矩陣大

POJ - 3253Fence Repair貪心,時光倒流

題幹: Description Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N