2020多校第一場1005

2021-10-08 12:35:13 字數 814 閱讀 1110

利用斐波拉契數列的通項公式。

先利用二次剩餘和逆元得出三個常數。

將式子多項式展開,發現等比數列的規律。

遍歷k,等比求和,用逆元求組合數。

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

100005

;const ll mod =

1000000009

;ll fac[n]

,a[n]

,b[n]

;void

init()

}ll quick_mod

(ll a,ll b,ll mod)

b >>=1;

a = a * a % mod;

}return ans;

}ll solve

(ll n,ll k)

ll m =

quick_mod

(383008016

,mod-

2,mod)

; ans = ans *

quick_mod

(m,k,mod)

% mod;

ans =

(ans % mod + mod)

% mod;

return ans;

}int

main()

return0;

}

2020 牛客多校第一場

a b suffix array f infinite string comparision jzk開場提出了兩倍最大的長度,然後 dh 說直接比較a b和b a即可,由於是訓練賽,不想寫太長的 然後交了一發直接比較的 就過了 includeusing namespace std string s1...

2020杭電多校第一場

簽到題,問長度為n且回文子串的個數最少的串的數量 想到 abcabcabc.排列回文子串最少為3 n 1,2,3特殊處理一下 include using namespace std typedef long long ll define rep i,a,b for register int i a ...

2013多校第一場

c 找規律的題。主要是把題目裡的加法與去火柴的模型聯絡起來,然後利用排列組合的原理找公式。小結 我一開始一直在研究每個數和每個數出現的次數,以及題目給的f n 2 n 1 有啥關係,最後也沒研究個啥結論,看題解才知道的。include include include include include ...