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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)

發布時間:2024/4/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題目鏈接:http://acm.swust.edu.cn/problem/0247/

Time limit(ms): 1000        Memory limit(kb): 65535 Description 在很久很久以前,有個臭美國王。一天,他得到了一件新衣,于是決定巡城看看老百姓的反應(囧)。于是他命令可憐的宰相數一下他有多少種巡城方案。?
城市是一個N*M的矩形,(N+1)*(M+1)條街把城市分成了N*M塊。國王從左下角出發,每次只能向右或向上走,右上角是終點。?
請你幫幫可憐的宰相。 Input 每組測試數據有3個值 n m p(0< n <=1000000000,0 < m <=1000000000,p為質數且p<400).? Output
多組測試數據 0 0 0結束。 輸出方案數 因為數據太大 請 mod p Sample Input
2 3 97 20 40 37 0 0 0

Sample Output
10 32

Hint 2009暑期ACM集訓組隊賽《一》 -- 劍問蒼生 解題思路:從左下角到右上角的方案數,那么(假設方陣大小n*m)      (1)向上必須移動n格,向右必然移動m格      (2)只需要以向上或向右移動為基準求C(n+m) n 或者C(n+m) m的組合數即可,好好想想為什么吧~~~~        ?可以有一個優化組合數上面的去n,m中的較小值(組合數性質)      (3)發現n,m<=1000000000那么在求組合數的時候肯定會直接爆掉,那怕是在求的過程中不斷MOD 數p,        那么我們以p的上限值為界求組合數,運用Lucas定理求解 Lucas定理:(詳情可以戳戳這里:http://www.cnblogs.com/zyxStar/p/4588362.html)

      Lucas定理用來求C(a,b)mod p的值,其中p為素數。
      數學表達式為:
      Lucas(a,b,q)=C(a%q,b%q)*Lucas(a/p,b/p,p);
      Lucas(a,0,q)=0;

      模運算與基本四則運算有些相似,但是除法例外。其規則如下:
      (a + b) % p = (a % p + b % p) % p (1)
      (a - b) % p = (a % p - b % p) % p (2)
      (a * b) % p = (a % p * b % p) % p (3)
      a ^ b % p = ((a % p)^b) % p (4)

?

代碼如下:

1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 405 5 using namespace std; 6 long long dp[maxn][maxn], n, m, p; 7 long long Lucas(long long n, long long m, long long p){ 8 //Lucas定理 9 if (n <= p && m <= p) 10 return dp[n][m]; 11 else 12 return (Lucas(n / p, m / p, p)*dp[n%p][m%p]) % p; 13 } 14 15 //楊輝三角求組合數 16 void init(){ 17 int i, left, right; 18 for (i = 1; i <= p; i++){ 19 dp[i][0] = dp[i][i] = 1; 20 left = 1, right = i - 1; 21 while (left <= right){ 22 dp[i][left] = (dp[i - 1][left - 1] + dp[i - 1][left]) % p; 23 dp[i][right--] = dp[i][left++];//組合數性質dp[i][j]=dp[i][i-j]; 24 } 25 } 26 } 27 int main(){ 28 while (cin >> n >> m >> p && n && m && p){ 29 memset(dp, 0, sizeof(dp)); 30 init(); 31 cout << Lucas(n + m, min(n, m), p) << endl; 32 } 33 return 0; 34 } View Code

?

亂搞的Java代碼如下:

1 import java.math.*; 2 import java.io.*; 3 import java.util.*; 4 public class Main{ 5 static int DP[][] = new int[401][401]; 6 static int p; 7 public static void main(String[] args) 8 { 9 Scanner cin = new Scanner(System.in); 10 int a, b; 11 while (cin.hasNext()){ 12 a = cin.nextInt(); 13 b = cin.nextInt(); 14 p = cin.nextInt(); 15 if (a == 0) 16 break; 17 initDp(); 18 System.out.println(sloveRe(a + b, b > a ? a : b)); 19 } 20 } 21 private static void initDp(){ 22 int i, j; 23 for (i = 0; i <= p; i++){ 24 DP[i][0] = 1; 25 } 26 for (i = 1; i <= p; i++){ 27 for (j = 1; j <= p; j++){ 28 DP[i][j] = (DP[i - 1][j] + DP[i - 1][j - 1]) % p; 29 } 30 } 31 } 32 private static int sloveRe(int n, int m){ 33 if (n <= p&&m <= p) 34 return DP[n][m]; 35 else 36 return (sloveRe(n / p, m / p)*DP[n%p][m%p]) % p; 37 } 38 } View Code

?

轉載于:https://www.cnblogs.com/zyxStar/p/4587185.html

總結

以上是生活随笔為你收集整理的[Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产第8页| 国产精品xxxxx | 日韩欧美国产另类 | wwwxx国产 | 这里只有精品国产 | 国产三级av在线 | 日韩精品视频一区二区在线观看 | 国产在线成人 | 日韩精品一区二区三区av | 欧美黑人性猛交xxxx | av免费网站观看 | 欧美脚交 | 国产精品815.cc红桃 | 极品美女一区二区三区 | jlzzjizz在线播放观看 | 182tv福利视频| 凹凸av在线| 亚洲一二三四在线观看 | 久久色在线观看 | 久久国产麻豆 | 狼人综合视频 | jizz国产| 1024亚洲天堂 | 日日夜夜撸啊撸 | 东北少妇不戴套对白第一次 | 二区三区视频 | 久久久无码人妻精品一区 | 窝窝午夜理论片影院 | 国产视频一区二区三区四区五区 | 亚洲色图p| 成人性生活免费视频 | 欧美日韩激情一区 | 丁香花在线影院观看在线播放 | www.黄色网址.com| 深夜福利国产精品 | 善良的女朋友在线观看 | 欧美熟妇久久久久 | 国产乱来| 丰满少妇高潮在线观看 | 日韩91视频| 欧美三日本三级少妇三级99观看视频 | 7色av| 男女啪啪免费 | 国产免费久久久 | 一本一道久久a久久精品综合 | 琪琪色18 | 久久久精品亚洲 | 91原创视频 | 成 人 a v天堂| 秋霞影院一区二区 | a级片中文字幕 | 亚洲综合免费观看高清完整版 | 懂色av一区二区三区四区五区 | 草莓视频在线观看18 | 国产二页| 久久久久久一级片 | 精品香蕉一区二区三区 | 欧美激情不卡 | 天天爱天天爽 | 打屁股调教网站 | 日韩αv| 国产高清免费在线播放 | 狠狠人妻久久久久久综合 | 国产一区二区视频免费观看 | 国产一区二区三区四区五区在线 | 日本一区二区三区四区在线观看 | 国产精品国色综合久久 | 99久久久无码国产精品衣服 | 国产精品9999 | 日本欧美国产在线 | 日韩黄色免费视频 | 亚洲爆乳无码一区二区三区 | 两口子交换真实刺激高潮 | 一区二区三区久久精品 | 一区二区成人精品 | 国产三级一区二区三区 | 99视频在线免费观看 | 成人爱爱| 91在线视频免费播放 | 人妻少妇一区二区 | 成人漫画网站 | 女人做爰全过程免费观看美女 | 欧美日韩电影一区二区三区 | 三级网站免费观看 | 黄色a级片视频 | 伊人超碰 | 国产在线喷水 | 女儿的朋友在线播放 | 毛毛毛片 | 影音先锋欧美在线 | 黄色片欧美| 中文字幕有码在线视频 | 国产精品久久在线 | 在线视频1卡二卡三卡 | 男女操网站 | 男人在线天堂 | av导航网址| 伊人免费 | 91小宝寻花一区二区三区 |