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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

poj 1664 放苹果【M的N划分】

發布時間:2024/1/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj 1664 放苹果【M的N划分】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?放蘋果

Description

把M個同樣的蘋果放在N個同樣的盤子里,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。

Input

第一行是測試數據的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=M,N<=10。

Output

對輸入的每組數據M和N,用一行輸出相應的K。

Sample Input

1 7 3

Sample Output

8
題目鏈接:http://poj.org/problem?id=1664 【解題思路】

設f(m,n)為把m個蘋果放到n個盤子中的方法數,m>=0,n>=0.

  • 若m和n中任何一個等于0,那么f(m,n) = 1,注意不是等于0,因為相當于就那么一種結果,就是不往盤子里面放(沒有蘋果),或者,連盤子都沒有。
  • 若n=1,顯然對于任意的m>=0 有f(m,1) = 1,若m=1,顯然對于任意的n>=0 有f(1,n) = 1
  • 接下來討論m>1 && n>1的情況:? ? ?
  • ? ? ? ? ? ? ?若 m < n 則 f(m,n) = f(m,m)。即空哪幾個盤子都是一樣的

    ? ? ? ? ? ? ?若 m>=n 則 大體有兩種放法:

    ? ? ? ? ? ? ? ? ? ? 第1種情況:至少有一個盤子為空,即什么也不放,這部分的方法數為f(m,n-1);

    ? ? ? ? ? ? ? ? ? ? 第2種情況:全部盤子都有蘋果,那么先從m個蘋果中抽取出n個出來,各個盤子分一個,考慮剩下的m-n個蘋果放到n個盤子里的放法,這樣就成功把f(m,n)降到了f(m-n,n)。 ? ? ? ? ?

    ? ? ? ? ? ? ? ? ? ??所以,m>=n時,有f(m,n) = f(m,n-1) + f(m-n,n);

    AC代碼: 1 #include<stdio.h> 2 int f(int x,int y) 3 { 4 if(y==1||x==0) return 1;//盤子數為1,或者沒有蘋果了 5 if(x<y) return f(x,x);//蘋果數小于盤子的數目時 6 return f(x,y-1)+f(x-y,y);//至少一個盤子為空或者每個盤子都放了蘋果 7 } 8 9 int main() 10 { 11 int t,m,n,i; 12 scanf("%d",&t); 13 for(i=0;i<t;i++) 14 { 15 scanf("%d%d",&m,&n); 16 printf("%d\n",f(m,n)); 17 } 18 return 0; 19 }

    轉載于:https://www.cnblogs.com/123tang/p/5784803.html

    總結

    以上是生活随笔為你收集整理的poj 1664 放苹果【M的N划分】的全部內容,希望文章能夠幫你解決所遇到的問題。

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