日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

HDU 3037 Saving Beans (Lucas定理)

來源:程序員人生   發布時間:2014-10-03 08:00:00 閱讀次數:2073次
/*求在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; }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 黄色大片免费观看 | 亚洲第一av在线 | 国产黄色网 | 偷拍自拍在线观看 | 最近中文字幕视频大全 | 日韩精品一二三区 | 久久九九 | 一级aaa级毛片午夜在线播放 | 在线国产网址 | www久| 久久久久久久婷婷 | 中文视频在线 | 成人一区视频 | 日批免费看 | 中文字幕精品一区久久久久 | 亚洲一区二区三区四区 | 久久久噜噜噜久久中文字幕色伊伊 | 99久久精品毛片免费播放高清 | 国产精品精品久久久久久 | 国产精品99久久久久久似苏梦涵 | 黄色毛片毛茸茸 | 亚洲视频精品 | 激情一区二区三区 | 午夜精品久久久久久久久久蜜桃 | 久久成人在线视频 | 成人在线免费播放视频 | 国产在线视频网 | 国产精品综合视频 | 日韩啊v| 日韩欧美精品一区二区 | 国产伦精品一区二区三区免 | 欧美一区二区在线视频 | 国内自拍网 | 亚洲第一页在线 | 久久久午夜精品 | 99久久夜色精品国产亚洲96 | 日本久久精品 | 久久精品在线观看 | 亚洲欧洲激情在线乱码蜜桃 | 日韩欧美激情电影 | 精品一区二区久久久久久久网站 |