題意:farmer john 想知道,在一家商品**為1至k (1 <= k <= 100)的店有多少方法能正好花完他的n(1 <= n <= 1000)元錢 。商品數量充足。
思路:完全揹包,dp[j]表示**為j時花光錢的方法數,所以狀態轉移方程為dp[j]+=dp[j-i](i為商品**)
因為方法數過大超longlong了,所以開兩個longlong陣列將大數存下;
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define maxn 33000
#define inf 0x3f3f3f3f
#define lmid l,m,rt<<1
#define rmid m+1,r,rt<<1|1
#define ls rt<<1
#define rs rt<<1|1
#define mod 1000000007
#define i64 __int64
#define limit_ull 100000000000000000
using
namespace
std;
long
long dp[1005][2];
int main()
if(dp[n][0])
cout
<1]0;}
(經典)POJ 3181 完全揹包 大數處理
題目大意 給定n,k,用1 k組成n,一共有多少組合方法?分析 這題屬於完全部分和問題,其實也可以理解為劃分數問題。如n為3,k為2時,有 1 21 1 1 這2種方法,我們可以理解為用1和2去填滿或者組成3,這樣想便是完全揹包可行性也就是完全部分和問題。或者這樣看,1 11 1 1 1 這樣的話便...
POJ 1384 完全揹包
題意 給定乙個重量,和各種錢幣的重量,求可以滿足給定重量的錢幣組合中的最小組合。如果存在組合就求出最小值。轉移方程 1 f j 和 f j w i 都可達 則 f j min 2 f j 不可達 但 f j w i 可達 則 f j f j w i p i 3 其餘情況 則不作處理 程式 inclu...
poj 1384完全揹包
題意 給出豬罐子的空質量和滿質量,和n個硬幣的價值和質量,求豬罐子剛好塞滿的的最小價值。思路 選擇硬幣,完全揹包問題,塞滿 初始化為無窮,求最小價值,min。include include includeusing namespace std define inf 10000000 int n,su...