序言
dp太辣雞所以要刷題!做完usaco裡dp專題的所有題!【然而還有數字dp插頭dp的都還不會qwq
題目+題解
一、subset sums, usaco 1998 spring
解題思路
因為平分,所以以和的一半當總容量做01揹包。答案除以2,因為會重複算一次
#include#include#include#include#includeusing namespace std;二、[bzoj1739][poj2392]space elevator, usaco 2005 mar#define maxn 11000
long long f[maxn];
int main()
解題思路
算是加點限制的多重揹包?
f[i]表示能否搭到高度為i..
if (f[j-k*a[i].h]) f[j]=1;k列舉使用第i塊的個數
#include#include#include#include#includeusing namespace std;三、[poj2184]cow exhibition,usaco 2003 fall#define maxn 410
struct node
a[maxn];int f[maxn*100];
int mymin(int x,int y)
解題思路
f[i]就表示當智商為i時的最大情商。
因為有負數,所以有個基準值(設為)xx
轉移:if(f[j-s[i]+xx]!=inf) f[j+xx]=max(f[j+xx],f[j-s[i]+xx]+q[i]);
這樣的話,因為s[i]的正負性不確定,你並不能知道j-s[i]與j的大小關係(即方程的轉移方向)
所以要對s[i]正負的不同做不同的處理[wa了很久= =還不造為什麼。。因為根本沒有考慮到orz]
#include#include#include#include#includeusing namespace std;四、[bzoj1655]dollar dayz,usaco 2006 jan#define maxn 1001000
#define inf -1e9
int f[maxn],s[110],q[110];
int mymax(int x,int y)
int main()
n=ln;int pz=-xx;
for (j=0;j<=lm+xx;j++) f[j]=inf;
f[xx]=0;
for (i=1;i<=n;i++)
else
}for (i=xx;i<=lm+xx;i++)
if (f[i]>=0) ans=mymax(ans,i-xx+f[i]);
printf("%d\n",ans);
return 0;
}
解題思路
f[i]表示數目為i時的劃分的方案數
f[i]+=f[i-j];水..但是要打高精度!
[太水了。。**就不貼了占地]
五、[bzoj1578]stock market,usaco 2009 feb
解題思路
f[i]表示第i天能獲得的最多的錢
f[i]=max(f[i-1],g[f[i-1]]);
g[i]表示有i錢時得到的最多的錢。
對每天做01揹包,k列舉錢,第j天,第i只**
g[k]=max(g[k],g[k-p[i][j-1]]+p[i][j]);
能一天一天的買賣**的原因是,今天買了某只**,若後來在較高點賣出的話,相當於在這期間以沒那麼高的**賣了一次又買了一次。若期間的**都比今天低,那不如在最低的那天再買,弄回前面這種情況。
最後進行最上面的f的轉移。
p.s.我好像有乙個點還是tle的。。。
#include#include#include#include#includeusing namespace std;const int mx=500000;
int p[60][110],f[110],g[mx+10];
int main()
printf("%d\n",f[d]);
return 0;
}
USACO3 1 2 總分 揹包問題動態規劃
完全揹包問題。f i j 表示用前j個物品,放滿i的空間,能取得最大價值。f i j max f i a p j 1 b p j按順序用的話,陣列第二維可以壓掉。即為f i max f i a p b p executing.test 1 test ok 0.008 secs,3484 kb tes...
揹包型動態規劃 揹包問題1
在n個物品中挑選若干物品裝入揹包,最多能裝多滿?假設揹包的大小為m,每個物品的大小為a i 示例 樣例 1 輸入 3,4,8,5 backpack size 10 輸出 9 樣例 2 輸入 2,3,5,7 backpack size 12 輸出 12 首先要明確一點,在揹包問題中,陣列大小和總稱重有...
動態規劃之揹包問題
最近刷題遇到好幾道揹包問題,揹包問題是動態規則中的一類體型,在考察演算法的筆試中經常遇到。關於揹包問題,文章 揹包問題九講 中已經做了很多分析,這裡就不再細述,建議好好看看這篇文章。然而文章給了許多案例分析,卻沒有很好的練習。說明 1 本文目的不在於講解揹包問題的分析與講解,而是收集了一些揹包問題。...