ZOJ 3774 二次剩餘

2022-05-20 10:39:56 字數 1184 閱讀 1573

link

題意:簡單粗暴,求菲波那契數列每個數的m次的前n項和模1e9+7

思路:斐波那契通項式

, 注意到有很多根號5,求二次剩餘為5模1e9+7的解,顯然我們可以直接找乙個(383008016),然後拿來替代根號5,然後優化下,把中括號中共軛的兩部分預處理下,然後由於是外部的乙個指數m,從1列舉到m,來求二項式定理的每項係數,再用個逆元就好了。人家的校賽題(

/** @date    : 2017-03-18-15.39

* @author : lweleth ([email protected])

* @link :

* @version :

*/#include#define ll long long

#define pii pair#define mp(x, y) make_pair((x),(y))

#define fi first

#define se second

#define pb(x) push_back((x))

#define mmg(x) memset((x), -1,sizeof(x))

#define mmf(x) memset((x),0,sizeof(x))

#define mmi(x) memset((x), inf, sizeof(x))

using namespace std;

const int inf = 0x3f3f3f3f;

const int n = 1e5+20;

const double eps = 1e-8;

const ll mod = 1e9 + 9;

const ll trem = 383008016;

ll fac[n], le[n], ri[n];

ll fpow(ll a, ll n)

return res;

}ll inv(ll x)

void init()

}int t;

ll n, k;

int main()

ans = (ans * fpow(inv(trem) % mod, k) + mod) % mod;

printf("%lld\n", ans);

}return 0;

}

二次剩餘小結

對於模數 n 和整數 a 若存在整數 x 滿足 x 2 equiv a mod n 則稱 x 是模 n 意義下的二次剩餘,否則是非二次剩餘 注 這裡討論的 x 滿足 x in 1,n 尤拉判別法 對於奇素數 p a 是模 p 意義下的二次剩餘當且僅當 a equiv 1 mod p 類似的,若 a ...

二次剩餘小記

看 text 的部落格看到的,發現似乎並沒有想象中的那麼難,就學了一下,過了板題,這裡記錄一下,暫時還是只會二次剩餘,n 次剩餘暫時先放一下。下文的 p 即是模數。我們稱 n 為模 p 意義下的二次剩餘當且僅當存在 x 使得 x 2 equiv n pmod p,x in mathbb 下文的 ma...

二次剩餘雜記

參考資料一 參考資料二 對於 x 和 p 如果存在 a in 0,p 滿足 a 2 equiv x pmod p 則稱x為模 p 的二次剩餘。在這裡,我們暫時只討論 p 為奇素數的情況。有乙個性質,二次剩餘與非二次剩餘的個數均為 frac 2 如果 p 的原根為 g 那麼 g 的偶數次冪顯然都是二次...