題目1209 最小郵票數

2021-07-22 08:57:05 字數 781 閱讀 9378

該題目主要使用動態規劃的方法,解題過程中模擬實際的使用方法

#include

#include

#define max 1000000000

using

namespace

std;

int minstep;

vector

allvalue;//存放的是所有的面值

int value;//需要的面值

//三個引數依次是當前的所有值,陣列的下標,還有當前的總步數

void solve(int sum, int index, int step)

return;

}if (sum>value)//如果現在的面值大於所需的面值,則返回

return;

if (index < 0)//如果找到最初的還沒有所需的面值,則返回無解

solve(sum + allvalue[index], index - 1, step + 1);//分為兩種情況,一種是選擇當前的

solve(sum, index - 1, step);//另一種是不選擇當前的

}int main()

//輸入完成

solve(0, nvalue - 1, 0);//因為陣列是從小到大排列,所以從n-1的下標開始選

minstep = minstep == max ? 0 : minstep;

cout

<< minstep << endl;

}return

0;}

題目1209 最小郵票數

題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。輸入 有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m 100。然後是乙個數n,n 20,表示有n張郵票。接下來是n個正整數...

1209 最小郵票數

1209 最小郵票數.cpp 定義控制台應用程式的入口點。題目1209 最小郵票數 時間限制 1 秒記憶體限制 32 兆特殊判題 否提交 2604解決 871 題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張...

最小郵票數

時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1680 解決 558 題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。輸入 有多組資料,對於每組資料,首先是要求湊成的...