第九章 動態規劃-1293:買書

1293:買書

時間限制: 1000 ms 內存限制: 65536 KB
提交數: 3200 通過數: 2130
【題目描述】
小明手裏有n元錢全部用來買書,書的價格爲10元,20元,50元,100元。

問小明有多少種買書方案?(每種書可購買多本)

【輸入】
一個整數 n,代表總共錢數。(0≤n≤1000)

【輸出】
一個整數,代表選擇方案種數。

【輸入樣例】
20
【輸出樣例】
2
【提示】
樣例輸入

樣例輸入2:

15
樣例輸入3:

0
樣例輸出

樣例輸出2:

0
樣例輸出3:

0


思路: 先定義數組保存每種書的價格,設f[j]表示選擇方案種數,如果f[j-w[i]] != 0,則f[j] = f[j] + f[j-w[i]]。和硬幣那題類似。

#include<cstdio>
#include<iostream>
using namespace std;
#define N 10000
typedef long long ll;
int v;
ll f[N];
int w[4] = {10,20,50,100};
int main(){
	cin >> v;
	f[0] = 1;
	for(int i = 0; i <4; i++)
	  for(int j = w[i];j <= v;j++)
	  f[j] += f[j-w[i]];
    cout << f[v] <<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章