總時間限制:1000ms
記憶體限制:65536kb
描述在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數——多重影分身之術——就是乙個很好的例子。
影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。
針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。
那麼問題來了,假設鳴人的查克拉能量為m,他影分身的個數為n,那麼製造影分身時有多少種(用k表示)不同的分配方法?(影分身可以被分配到0點查克拉能量)
輸入第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數m和n,以空格分開。1<=m,n<=10。
輸出對輸入的每組資料m和n,用一行輸出相應的k。
樣例輸入
1樣例輸出7 3
8【思路】相當於把m個相同的蘋果放入n個盤子中的方法的個數
就將就著這個問題寫思路吧 m個克拉能量相當於m個蘋果,n個分身相當於n個盤子;
對放入的情況進行討論
(1)當n>m(即當盤子個數大於蘋果個數時)
一定有m-n個盤子空著 那麼這種情況和把m個蘋果放入m個盤子效果是一樣的;
(2)當n<=m時(即當盤子個數小於蘋果數)
分類討論:
1、至少有乙個盤子是空的的時候 就相當於把m個蘋果放入n-1盤子中
2、當每個盤子都有的時候(每個盤子都有蘋果了那麼至少是乙個吧)
效果就是 f(m-n,n),把每個盤子的蘋果都拿出乙個;、
因為遞迴(1)是盤子數不斷減少,所以當n==1時,return 1(只有乙個盤子那就只有一種方法)
(2)是蘋果數不斷減少,所以我們定義m==0時 return 1(有一種方法);
【**】
#include#include#include
#include
using
namespace
std;
int dp(int m,int
n)int
main()
return0;
}
鳴人的影分身
描述在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。那麼問題...
鳴人的影分身
題目鏈結 題目描述 在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致...
24 鳴人的影分身
描述 在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。那麼問...