POJ 3181 完全揹包

2021-08-05 21:43:20 字數 809 閱讀 2694

題意: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...