ybt1192放蘋果後續 正解

2022-05-16 07:50:22 字數 996 閱讀 9497

注:本篇為此篇後續

上次的想法只是一時靈機一動,但小聰明是不能解決問題的,所以要理性地分析,在複雜的問題,經過分解都會變得簡單。··

····

盤子\蘋果12

3451

1111

1212

2333

1234

5412

3565

1235

7設i果j盤的方案數是fi,j

在列表後可以發現,**的第一行和第一列都是1,並且易知m或n為零時的方案數,這便是我們遞推的邊界條件。

寫出初始化**:

f[0][0]=1;

for(int i=1;i<=10;i++)

另外,在盤子比蘋果多的時候,方案數不再隨盤子的增多而增多。

所以當ii,j=fi,i

要想進行遞推,找清狀態關係是關鍵,在列上文的表時,我是先將所有蘋果放在第乙個盤子裡,然後乙個乙個往後拿,直到在保證蘋果數量遞減的前提下無法往後拿為止。一開始就會出現在後面的盤子裡大量出現零的情況,那麼我們就可以這樣分類。

\[總方案=有空盤方案+無空盤方案

\]當有空盤時​,至少但不僅僅有乙個盤子沒放蘋果,所以這時的問題就簡化成j-1個盤子放i個蘋果的情況;

當沒有空盤時,每個盤子有至少但不僅僅乙個蘋果,所以這時將每個盤子的第乙個蘋果去掉,問題就簡化成將i-j個蘋果放進j個盤子的情況。

/*完整***/

#includeusing namespace std;

int f[15][15],t,m,n;

int main()

for(int j=2; j<=10; j++)

for(int i=j; i<=10; i++) {//列舉蘋果數

f[i][j]=f[i][j-1]+f[i-j][j];

//cout<>t;

for(int k=1;k<=t;k++) {

cin>>m>>n;

cout《思路來自這裡,感謝

1192 純粹素數

題目描述 純粹素數是這樣定義的 乙個素數,去掉最高位,剩下的數仍為素數,再去掉剩下的數的最高位,餘下的數還是素數。這樣下去一直到最後剩下的個位數也還是素數。輸入乙個整數n,如果是純粹素數輸出yes,否則輸出no。輸入 正整數n,n 10 9。輸出 yes或者no,yesg表示n是純粹素數,no表示n...

1192 貨幣系統

給你乙個n種面值的貨幣系統,求組成面值為m的貨幣有多少種方案。樣例 設n 3,m 10,要求輸入和輸出的格式如下 第一行兩個整數n,m m 5000 以下n行,每行乙個整數,第i 1行為第i種貨幣的面值 乙個整數,為方案數 3 1012 510動態規劃 揹包問題 n,m map int,input ...

貪心 Ybt 畜欄預定

同一時間內,乙個畜欄只能供一頭牛使用。給出一些牛需要使用畜欄的時間段,讓你求使用的最少畜欄數量與安排方案。輸入第一行乙個 n 代表牛的數量 接下來 2 n 1 行,每行兩個數,代表這頭牛使用畜欄的起始時間與結束時間。輸出第一行乙個數,代表最少畜欄數量。接下來 2 n 1 行,每行乙個數,代表這頭牛安...