把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用k表示)5,1,1和1,5,1 是同一種分法。一道思維題 過程大致如下:第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。
對輸入的每組資料m和n,用一行輸出相應的k。
sample input
17 3
sample output
8
每一次深搜分為兩部分 一是所有盤中都要裝蘋果 二是至少有乙個盤中不裝蘋果 兩個過程所計算的方法數相加 就是裝蘋果的方法數
可能有人會在dfs(m, n - 1)疑惑 為什麼這是至少乙個盤中不裝蘋果的方法數。
因為這裡進入深搜的過程 每一次深入都會計算再多乙個空盤中的方法數 結合在一起就是有空盤子的方法數。
#include
#include
#include
#include
#include
using
namespace std;
const
int maxn =
1e3+5;
intdfs
(int m,
int n)
intmain()
return0;
}
放蘋果(求組合數)
問題 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?注意 假如有3個盤子,那麼 5,1,1 和 1,5,1 與 1,1,5 都是同一種分法。這種求放物品的組合數問題,可以通過這樣的完備思路來構造遞迴公式 假設有n個盤子 那麼1 至少有乙個盤子不放蘋果 2 n個盤...
牛客網 放蘋果 DFS
牛客網 放蘋果 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。每行均包含二個整數m和n,以空格分開。1 m,n 10。對輸入的每組資料m和n,用一行輸出相應的k。示例1複製 17 3複製8 這是一道模板題,將m個物...
POJ 1664 放蘋果 DFS 遞迴
因為一瞬間腦子不太清楚,有個地方敲錯了,導致了這道水題花了我一些時間,其實很簡單.首先想到的是dfs,因為一直在做這個嘛.dfs 比較長,好不容易遇到一道容易題,我還剪了剪枝。這麼水的題,有點多此一舉啊 includeint m,n int total,num void dfs int remain...