NOJ-1203-裝盤子
裝盤子
描述
N人為了大快朵頤,行至雲餐二樓,取了N個盤子,打了M個餃子。現欲將M個餃子裝入N個盤子中,試問共有多少種不同的裝法?
假設盤子足夠大,並且盤子裡可以什麼都不放。注意像2 5 0和5 0 2之類的屬於同一种放法。
輸入
兩個整數M、N(1=< M,N <=100)以空格隔開。
輸出
單獨一行輸出共有幾種裝法。
輸入樣例
7 3
輸出樣例
8
提示
注意輸出要以“\n”結尾。
思路
問m個餃子放到n個盤子的方法,這個題直接寫動態轉移方程不好寫,那就換成寫記憶化搜尋就行了。考慮m>=n和m<n兩種情況。dfs(int resn ,int resm)表示剩餘resn個盤子,剩餘resm個餃子的放置種類數目,dp[resn][resm]對其進行記錄,一旦dp[resn][resm]遍歷過,就直接返回即可,優化時間複雜度。m<n的話肯定有n-m個盤子都是空的ans=dfs(rem,rem)。m>=n的話可以一個盤子不妨餃子即dfs(resn-1,resm ),也可以將每個盤子都至少放一個餃子即dfs(resn,resm-resn).由dfs(resn-1,resm)不斷搜尋下去可以對不同數量的空盤子均可以遍歷到。最後答案就是dfs(n,m).
程式碼
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=100+50;
int n,m,dp[maxn][maxn];
int dfs(int resn,int resm){
if(resn==1||resm==1||resm==0)return 1;
if(dp[resn][resm])return dp[resn][resm];
int ans=0;
if(resm<resn)ans=dfs(resm,resm);
else ans=dfs(resn-1,resm)+dfs(resn,resm-resn);
dp[resn][resm]=ans;
return ans;
}
int main(){
cin>>m>>n;
cout<<dfs(n,m)<<endl;
return 0;
}
相關文章
- 數字沙盤與電子沙盤在展示效果及裝置組成上的區別
- 12.1 使用鍵盤滑鼠監控鉤子
- U盤如何製作win10安裝盤|win10安裝U盤製作方法Win10
- 8-1 【Python0021】電子算盤Python
- 電子沙盤的應用都有哪些功能
- 安裝在C盤的軟體移到其它盤
- Simulink中封裝子系統封裝
- 電子裝置推薦
- 百度雲盤、BT種子搜尋引擎
- win10沙盤安裝教程 win10電腦沙盤怎麼安裝Win10
- win10正式版安裝盤如何安裝_win10正式版安裝盤安裝詳細步驟Win10
- 電子棋盤(二)——戰棋地形的多樣性
- win10軟體安裝c盤和d盤有什麼區別_win10軟體安裝c盤好還是d盤好Win10
- Window10安裝linux子系統及子系統安裝1Panel皮膚Linux
- 如何製作uefi win10安裝盤啟動U盤Win10
- 【ubuntu】安裝百度雲盤Ubuntu
- U盤裝CENTOS作業系統CentOS作業系統
- jdk1.8安裝到d盤JDK
- python預設安裝在哪個盤Python
- 除鋁離子回收磷酸裝置
- uefi啟動U盤如何安裝系統_uefi啟動u盤安裝系統的方法
- u盤裝系統步驟圖解win10_u盤裝系統win10教程圖解Win10
- win10怎麼製作安裝u盤_win10安裝U盤製作教程Win10
- 鍵盤驅動怎麼重新安裝 win10鍵盤驅動重新安裝的方法Win10
- win10如何禁止電腦c盤裝安裝軟體_win10禁止c盤安裝軟體的方法Win10
- win10專業版安裝教程u盤安裝_U盤裝win10專業版系統的方法Win10
- u盤如何安裝ghost win10系統_用U盤裝安裝ghost win10系統的步驟Win10
- N1盒子掛載阿里雲盤-Alist工具阿里
- 如何用U盤安裝win10系統_U盤裝win10官方原版映象的方法Win10
- iso檔案怎麼用u盤安裝系統 u盤pe安裝iso檔案方法教程
- Mac 製作 win10 安裝盤MacWin10
- Win11安裝kali子系統
- WIN10 安裝 Ubuntu子系統Win10Ubuntu
- win10怎麼裝進u盤_怎麼把win10映象系統裝進u盤裡Win10
- windows10建立U盤安裝介質流程_win10 U盤安裝介質如何製作WindowsWin10
- 如何用U盤裝win10原版系統|U盤安裝win10原版系統的方法Win10
- 聯想電腦如何用U盤裝系統|聯想筆記本U盤裝系統的方法筆記
- u盤如何安裝windows7系統 u盤一鍵安裝win7映象系統教程WindowsWin7