題目鏈結
題目描述
在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。
我們的主角漩渦鳴人所擁有的乙個招數——多重影分身之術——就是乙個很好的例子。
影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。
針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。
那麼問題來了,假設鳴人的查克拉能量為m
mm,他影分身的個數最多為n
nn,那麼製造影分身時有多少種不同的分配方法?
注意:影分身可以分配0點能量。
分配方案不考慮順序,例如m
mm=7,n
nn=3,那麼 (2,2,3) 和 (2,3,2) 被視為同一種方案。
輸入格式
第一行是測試資料的數目ttt。
以下每行均包含二個整數m
mm和n
nn,以空格分開。
輸出格式
對輸入的每組資料m
mm和n
nn,用一行輸出分配的方法數。
資料範圍
0 ≤t
≤200\le t\le 20
0≤t≤20,1≤
m,n≤
101\le m, n\le 10
1≤m,n≤
10輸入樣例:
1輸出樣例:7 3
![](https://pic.w3help.cc/893/ee3da9b25838d0d97d6d1cf55e9d3.jpeg)
1.dfs
2.dp狀態計算中很奇怪的分法。
dfs
#include #include #include #include using namespace std;
typedef long long ll;
const int n = 15;
int f[n];
int n, m;
ll ans;
// u代表dfs到了哪一位,s代表已經用了多少查克拉,st就是start的縮寫代表著從多少開始,因為本題總不考慮順序,所以我們自己規定乙個不減小的順序
void dfs(int u, int s, int st)
for (int i = st; i <= n; i++)
}int main()
return 0;
}
dp#include #include #include #include using namespace std;
const int n = 15;
int m, n;
int f[n][n];
int main()
cout << f[m][n] << endl;
memset(f, 0, sizeof(f));
}return 0;
}
鳴人的影分身
描述在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。那麼問題...
24 鳴人的影分身
描述 在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強度的影分身,有的用來佯攻,有的用來發起致命一擊。那麼問...
24 鳴人的影分身
總時間限制 1000ms 記憶體限制 65536kb 描述 在火影忍者的世界裡,令敵人捉摸不透是非常關鍵的。我們的主角漩渦鳴人所擁有的乙個招數 多重影分身之術 就是乙個很好的例子。影分身是由鳴人身體的查克拉能量製造的,使用的查克拉越多,製造出的影分身越強。針對不同的作戰情況,鳴人可以選擇製造出各種強...