05 登月計畫

2021-09-07 13:08:27 字數 2429 閱讀 7116

總時間限制: 

40000ms

單個測試點時間限制: 

4000ms

記憶體限制: 

256000kb

描述hja在和學弟學數學,於是便有了一道非常簡單的數學題:求滿足 ax

≡= b (mod p) 的最小自然數x。

對於30%的資料,1≤p≤1000。

對於100%的資料,1≤a,b

輸入輸入資料一行三個正整數a、b、p,我們保證p是乙個質數。

輸出一行乙個整數代表最小的自然數x,如果不存在這樣的x輸出-1。

樣例輸入

2 1 3
樣例輸出

0
**

zhonghaoxi

做了這道題,才發現pb_ds的偉大。。。。

不用pb_ds 80  20000+ms

用了ac  10000+ms。。

1 #include2 #include3 #include4 #include5 #include6

#define ll long long

7using

namespace

std;

8ll a,b,c;

9 mapmp;

10ll fastmul(ll x,ll p)

1121 p>>=1

;22 now=(now+now)%c;23}

24return (ans)%c;25}

26ll fastpow(ll a,ll p,ll c)

2735

return

ans;36}

37int

main()

3853

//費馬小定理的有解條件

54 ll ans;//

儲存每一次列舉的結果 b* a^j

55for(ll j=0;j<=m;j++) //

a^(i*m) = b * a^j

5663 ans=(fastmul(ans,a))%c;//

a^j

64 mp[ans]=j;//

儲存每一次列舉的結果 65}

66 ll t=fastpow(a,m,c);

67 ans=1;//

a ^(i*m)

68 ll flag=0;69

for(ll i=1;i<=m;i++)

707980}

81if(!flag)

82 printf("

-1\n

");

83return0;

84 }

不用80

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

#define ll long long

9using

namespace

std;

10using

namespace

__gnu_pbds;

11ll a,b,c;

12 gp_hash_tablemp;

13ll fastmul(ll x,ll p)

1424 p>>=1

;25 now=(now+now)%c;26}

27return (ans)%c;28}

29ll fastpow(ll a,ll p,ll c)

3038

return

ans;39}

40int

main()

4156

//費馬小定理的有解條件

57 ll ans;//

儲存每一次列舉的結果 b* a^j

58for(ll j=0;j<=m;j++) //

a^(i*m) = b * a^j

5966 ans=(fastmul(ans,a))%c;//

a^j

67 mp[ans]=j;//

儲存每一次列舉的結果 68}

69 ll t=fastpow(a,m,c);

70 ans=1;//

a ^(i*m)

71 ll flag=0;72

for(ll i=1;i<=m;i++)

738283}

84if(!flag)

85 printf("

-1\n

");

86return0;

87 }

用了ac

俄羅斯登月計畫

近期,隨著nasa宣布的幾次重大發現,以及nasa公布的未來的一些計畫,包括登陸火星甚至在火星上 種森林 等等,似乎都在對外宣布著一件事情 那就是nasa目前在航空航天領域的霸主地位。而作為世界上第乙個將太空飛行員送入太空的國家,前蘇聯雖然已經解體,但是它的繼承者俄羅斯,還是會偶爾站出來表示不服的。...

登月計畫 (BSGS 快速乘)

登月計畫 題目描述 hja在和學弟學數學,於是便有了一道非常簡單的數學題 求滿足 的最小自然數x。輸入格式 輸入資料一行三個正整數a b p,我們保證p是乙個質數。輸出格式 一行乙個整數代表最小的自然數x,如果不存在這樣的x輸出 1。樣例輸入 2 1 3 樣例輸出 0 資料範圍與規定 對於30 的資...

計畫 2023年5月計畫

由於上次計畫制定時已經是月中了,弄得有點多,削減了一點。從清北回來,最後一次藉著眾dalao意外失利,我接近ak了 有乙個資料點有點小問題,拿了290分 小激動,愈發砥礪前行。1 完成四月計畫 5.11日 2 清北學堂day1題目 18日 3 清北學堂day2題目 25日 4 清北學堂day3題目 ...