牛客國慶集訓day5 B 電音之王 (大數乘模)

2022-05-09 01:00:07 字數 1725 閱讀 9235

終於活成了自己討厭的樣子。

聽說多聽電音能加快程式執行的速度。

定義乙個數列,告訴你a0,a1,m0,m1,c,定義an=m0an-1+m1an-2+c對所有n≥ 2。

第一行乙個整數t(1≤ t≤ 1000),表示資料組數。

每組資料一行7個整數a

0

,a
1

,m
0

,m
1

,c,m,k,保證1≤ m≤ 10
18

,0≤ a
0

,a
1

,m
0

,m
1

,c< m, 2≤ k≤ 10
6

,保證m為奇數。

保證

對於每組資料,輸出一行表示答案。
示例1

複製

1

1 1 1 1 0 1000000007 10

複製

904493530

蒙哥馬利板子題。

1 #include 2

using

namespace

std;

34 typedef long

long

ll;5 typedef unsigned long

long

u64;

6typedef __int128_t i128;

7typedef __uint128_t u128;89

struct

mod64

11mod64(u64 n) :n_(init(n)) {}

12static u64 init(u64 w)

13static

void

set_mod(u64 m)

18static

u64 reduce(u128 x)

22 mod64& operator += (mod64 rhs)

23 mod64 operator + (mod64 rhs) const

24 mod64& operator -= (mod64 rhs)

25 mod64 operator - (mod64 rhs) const

26 mod64& operator *= (mod64 rhs)

27 mod64 operator * (mod64 rhs) const

28 u64 get() const

29static

u64 mod, inv, r2;

30u64 n_;

31};

3233

u64 mod64::mod, mod64::inv, mod64::r2;

3435

36int

t, k;

37u64 a0, a1, m0, m1, c, m;

3839

void

run()

4055 printf("

%llu\n

", ans.get

());56}

57}5859

intmain()

60

view code

牛客國慶集訓day5 B 電音之王 (大數乘模)

終於活成了自己討厭的樣子。聽說多聽電音能加快程式執行的速度。定義乙個數列,告訴你a 0,a1,m 0,m1,c,定義a n m0a n 1 m 1an 2 c對所有n 2。求第一行乙個整數t 1 t 1000 表示資料組數。每組資料一行7個整數a 0 a1 m0 m1 c,m,k,保證1 m 101...

2020牛客國慶集訓派對day5

題目ab cdef ghij ksolved 比賽時通過 賽後通過 比賽時嘗試了未通過 比賽時未嘗試 solved by sstee1xd.3 31 7 題意 問你在1 n 1 n1 n中有多少個數字在k kk進製與 k k k進製表示下結果相同。題解 轉換一下就是要求正負進製下只有奇數字有數字的數...

2019牛客國慶集訓day5L題

題意理解 給你乙個含有n個數的陣列,任意取四個元素相乘,求所有乘積的和 對1e9 7取模 題解 有兩種做法,dp和根據題目中的公式來做,果斷選擇dp,而且 還短。dp i j 表示前i個數,任意選j個數的乘積的和為多少。狀態轉移方程 dp i j dp i 1 j dp i 1 j 1 a i mo...