hdu 4291 矩陣冪 迴圈節

2021-09-09 02:29:37 字數 1071 閱讀 5901

凡是取模的都有迴圈節-----常數有,矩陣也有,並且矩陣的更奇妙:

g(g(g(n))) mod 10

9+ 7  

最外層mod=1e9+7  能夠算出g(g(n))的迴圈節222222224。進而算出g(n)的迴圈節183120ll。然後由內而外計算就可以

凝視掉的是求迴圈節的**

//#pragma comment(linker, "/stack:102400000,102400000")

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define ls(rt) rt*2

#define rs(rt) rt*2+1

#define ll long long

#define ull unsigned long long

#define rep(i,s,e) for(int i=s;i>1;

const double eps = 1e-8;

const double pi = acos(-1.0);

const int inf = 100000000;

const ll mod[3] = ;

const int n = 2;

struct matrix;

matrix i= ;

matrix unin=;

matrix matrixmul(matrix a,matrix b,long long mod)//矩陣a乘矩陣b

return b;

}ll solve(ll n)

return ret.m[0][0];

}int main()

if(n==1)

//printf("%i64d\n",solve(n));

cout << solve(n)%1000000007ll << endl;

}return 0;

}

hdu 4291 矩陣冪  迴圈節

矩陣快速冪 迴圈節 hdu4291

題意 given n 1 n 1018 you should solve for g g g n mod 109 7 where g n 3g n 1 g n 2 g 1 1 g 0 0 分析 這個遞推關係可以用矩陣快速冪來解決,但是這個題的問題是mod很大,會爆long long 並且超時的。那麼...

迴圈節 矩陣快速冪 HDU4291

迴圈節其實就可以看做取模,一般的1e9 7其實就是個迴圈節,只是大了點 切入正題 hdu4291 g x 很明顯的矩陣快速冪 本地直接暴力找迴圈節 ll a 0,b 1 for int i 2 i 一定要 開 long long 我沒開 long long 卡了乙個多小時嗚嗚嗚嗚嗚 三個g巢狀,就分...

矩陣快速冪 迴圈節 hdu4291

題意 given n 1 n 1018 you should solve for g g g n mod 109 7 where g n 3g n 1 g n 2 g 1 1 g 0 0 分析 這個遞推關係可以用矩陣快速冪來解決,但是這個題的問題是mod很大,會爆long long 並且超時的。那麼...