miku
這是一道數學題,可以推式子(我推錯了)
這是一道dp,完全沒想到它是。
所以說我把我的錯誤式子縫縫補補,加上個dfs
過了。大體思想就是利用插板法求出每個盒子可以裝幾個球的方案,
然後因為同乙個盒子內部的球是無序的,所以說用一點點排列的知識加上dfs的框架處理一下,然後就過了
#include#include#includeusing namespace std;
long long ariche(int x)
return tem;
}long long n,r;
long long simex;
void dfs(int la,int now,int cnt,int ans)
else
} dfs(la,now+1,cnt,ans);
dfs(now,now+1,cnt+1,ans*=(ariche(n-la)/ariche(n-la-(now-la))/ariche(now-la)));
}int main()
P1287 盒子與球
題目傳送門 我們考慮設 fi,jf fi,j 表示到第 i ii 個球放入 j jj 個盒子裡的方案數。考慮如何轉移,莫過於兩種情況 放入原有的盒子,重新開乙個盒子。對於第一種情況 fi,j fi 1,j j f f times j fi,j fi 1 j j 即在原有的箱子中選乙個 對於第二種情況...
P1287 盒子與球
現有 r個互不相同的盒子和 n個互不相同的球,要將這 n 個球放入 r個盒子中,且不允許有空盒子。請求出有多少種不同的放法。兩種放法不同當且僅當存在乙個球使得該球在兩種放法中放入了不同的盒子。輸入只有一行兩個整數,分別代表 n 和 r。輸出一行乙個整數代表答案。輸入 1複製 3 2 輸出 1複製 6...
洛谷 P1287 盒子與球
現有r個互不相同的盒子和n個互不相同的球,要將這n個球放入r個盒子中,且不允許有空盒子。問有多少種方法?例如 有2個不同的盒子 分別編為1號和2號 和3個不同的球 分別編為1 2 3號 則有6種不同的方法 輸入格式 兩個整數,n和r,中間用空格分隔。0 n,r 10 輸出格式 僅一行,乙個整數 保證...