国产探花免费观看_亚洲丰满少妇自慰呻吟_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);}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乳山市| 石嘴山市| 天峻县| 辉南县| 高清| 弥勒县| 克什克腾旗| 岚皋县| 彭州市| 林口县| 阜城县| 安化县| 吉安市| 白水县| 虎林市| 开化县| 普宁市| 简阳市| 顺平县| 习水县| 唐山市| 抚松县| 黄龙县| 伊吾县| 汝阳县| 三江| 屯门区| 浦北县| 抚顺县| 葵青区| 泸水县| 金门县| 长寿区| 敖汉旗| 赣州市| 石嘴山市| 福安市| 宁蒗| 德州市| 景东| 广昌县|