dp模板(01揹包 完全揹包 最長子序列)

01揹包

for(int i=1;i<=n;i++)
{
    for(int c=m;c>=0;c--)
    {
        if(c>=w[i])
        f[c]=max(f[c],f[c-w[i]]+v[i]);
    }
}

完全揹包

for(int i=1;i<=n;i++)
{
    for(int c=0;c<=m;c++)
    {
        if(c>=w[i])
        f[c]=max(f[c],f[c-w[i]]+v[i]);
    }
}

最長子序列

a[0] = 0;
	for(int i = 1;i <= n;i++){
		
	for(int j = 0;j < i;j++){
			
		if(a[i] > a[j]){
			dp[i] = max(dp[i],dp[j] + 1);
		}
	}
	
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章