日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[题解]RQNOJ PID85 三个袋子

發(fā)布時(shí)間:2023/11/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [题解]RQNOJ PID85 三个袋子 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

鏈接:http://www.rqnoj.cn/problem/85

思路:一個(gè)排列問(wèn)題,遞推式很簡(jiǎn)單,f(n+1)=3*f(n)-1 ,由此可以推出通項(xiàng)公式,f(n)=0.5*3^(n-1)+0.5 。

? ? ? ? 但是這個(gè)數(shù)太大了,我們需要求的是f(n) mod K 。那么就必須考慮同余的性質(zhì)。

? ? ? ? 我們知道2m≡a mod k 并不能推出m≡a/2 mod k ,但是2m≡a mod 2*k 卻可以推出m≡a/2 mod k 。借助此性質(zhì)再加上一個(gè)快速冪即可得出答案。

?

我的實(shí)現(xiàn):

1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int N,K; 5 int ans; 6 int Pow(int Num,int P,int MOD)//(Num^P)%MOD 7 { 8 if(Num<=1||P==1) 9 return Num%MOD; 10 if(P==0) 11 return 1; 12 int Ret=Pow(Num,P/2,MOD); 13 Ret=(1LL*Ret*Ret)%MOD; 14 if(P&1) 15 Ret=(1LL*Ret*Num)%MOD; 16 return Ret; 17 } 18 int main() 19 { 20 scanf("%d%d",&N,&K); 21 ans=(Pow(3%(K*2),N-1,K*2)+1)%(K*2); 22 ans/=2; 23 printf("%d\n",ans); 24 return 0; 25 } View Code

PS.zyy數(shù)學(xué)太渣了,大腦沒(méi)有儲(chǔ)存關(guān)于同余的東東,于是被這道題卡了好久好久…… 話說(shuō)網(wǎng)上還有一種利用循環(huán)節(jié)快速找到答案的方法,zyy智商不夠沒(méi)看懂,求各位大神指點(diǎn)指點(diǎn)~~~

轉(zhuǎn)載于:https://www.cnblogs.com/CQBZOIer-zyy/p/3826391.html

總結(jié)

以上是生活随笔為你收集整理的[题解]RQNOJ PID85 三个袋子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。