總時間限制:
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不用80#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 }
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8用了ac#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 }
俄羅斯登月計畫
近期,隨著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題目 ...