国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

整數劃分問題——POJ放蘋果問題

2019-11-08 01:58:02
字體:
來源:轉載
供稿:網友

放蘋果

Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32121 Accepted: 20178 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 Source

lwx@POJ

算法思想

首先要從數學的角度認識,這個問題屬于整數的劃分問題,即將正整數表示成一系列正整數之和——正整數N的劃分。

在正整數N的所有不同的劃分中,將最大加數n1不大于m的劃分個數記作q(n, m),可以建立如下遞歸關系。 (1)q(n, 1)=1, n>=1; (2)q(n, m)= q(n, n), m>=n; (3)q(n, n)= 1+q(n, n-1); (4)q(n, m)= q(n, m-1)+q(n-m, m), n>m>1。

#include <iostream>using std::cout;using std::cin;using std::endl;int mathods(int m, int n);int main(void){ int t, M, N; cin>>t; while (t--) { cin>>M>>N; cout<< mathods(M, N); cout<<endl; } return 0;}int mathods(int m, int n){ if((m<1)||(n<1)) return 0; if((m==1)||(n==1)) return 1; if(m<n) return mathods(m, m); if(n==m) return mathods(m, n-1)+1; return mathods(m, n - 1)+ mathods(m - n, n);}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭市| 阿合奇县| 江达县| 巫溪县| 丽江市| 汉源县| 南澳县| 庐江县| 宁海县| 民丰县| 都昌县| 饶平县| 白水县| 察雅县| 遂川县| 手机| 南开区| 繁峙县| 石门县| 获嘉县| 响水县| 甘肃省| 泰兴市| 新密市| 德兴市| 漯河市| 东兴市| 荔浦县| 诸城市| 鱼台县| 蓬莱市| 陇南市| 包头市| 繁峙县| 甘洛县| 金秀| 龙口市| 雷州市| 眉山市| 汉阴县| 澄迈县|