多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > HDU 3037 Saving Beans (Lucas定理)

HDU 3037 Saving Beans (Lucas定理)

來源:程序員人生   發布時間:2014-10-03 08:00:00 閱讀次數:2070次
/*求在n棵樹上摘不超過m顆豆子的方案,結果對p取模。 求C(n+m,m)%p。 因為n,m很大,這里可以直接套用Lucas定理的模板即可。 Lucas(n,m,p)=C(n%p,m%p,p)*Lucas(n/p,m/p,p); ///這里可以采用對n分段遞歸求解, Lucas(x,0,p)=1; 將n,m分解變小之后問題又轉換成了求C(a/b)%p。 而C(a,b) =a! / ( b! * (a-b)! ) mod p 其實就是求 ( a! / (a-b)!) * ( b! )^(p-2) mod p (上面這一步變換是根據費馬小定理:假如p是質數,且a,p互質,那么a的(p-1)次方除以p的余數恒為1, 那么a和a^(p-2)互為乘法逆元,則(b / a) = (b * a^(p-2) ) mod p) */ # include <stdio.h> # include <algorithm> # include <string.h> using namespace std; __int64 N,M,P; __int64 pow(__int64 a,__int64 n,__int64 p) { __int64 x=a; __int64 res=1; while(n) { if(n&1) res=(res*x)%p; x=(x*x)%p; n/=2; } return res; } __int64 C(__int64 n,__int64 m,__int64 p)///組合數學 { __int64 a=1,b=1; if(m>n) return 0; while(m) { a=(a*n)%p; b=(b*m)%p; m--; n--; } return a*pow(b,p-2,p)%p; } __int64 Lucas(__int64 n,__int64 m,__int64 p)///把n分段遞歸求解相乘 { if(m==0) return 1; return ( C(n%p,m%p,p)*Lucas(n/p,m/p,p) )%p; } int main() { int t; while(~scanf("%d",&t)) { while(t--) { scanf("%I64d%I64d%I64d",&N,&M,&P); printf("%I64d ",Lucas(N+M,M,P)); } } return 0; }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲精品永久www嫩草 | 国产片欧美片亚洲片久久综合 | 最近的中文字幕视频大全高清 | 国产精品毛片 | 亚洲a毛片| 亚洲视频网站在线观看 | 亚洲欧美在线观看视频 | 一二三四视频免费观看在线看1 | 国产成人午夜性a一级毛片 国产成人系列 | 欧美日韩亚洲国内综合网俺 | 免费国产h视频在线观看 | 欧美日韩久久 | 精品日韩二区三区精品视频 | 成人一区二区免费中文字幕 | 五月天视频网 | 国产精品久久久久影视不卡 | 另类图片成人偷拍 | 中文字幕视频网 | 国产a不卡 | 96xxxxx视频| 中文字幕曰韩一区二区不卡 | 日韩一级欧美一级毛片在线 | 成人影院vs一区二区 | 国产在线高清不卡免费播放 | 美女福利视频一区二区 | 国产h视频在线观看网站免费 | 久久精品伊人网 | 国产精品成久久久久三级 | 欧美久久久久欧美一区 | 手机在线日韩高清理论片 | 免费中文字幕在线国语 | 国内外一级毛片 | 久久国产区 | 国产综合久久久久久 | 成人在线小视频 | 久久优| 狠狠色噜噜狠狠狠狠五月婷 | 最近好看中文字幕视频 | 尤物yw午夜国产精品视频 | 国产精品欧美日韩一区二区 | 成人性色生活片免费看爆迷你毛片 |