01背包问题--动规
生活随笔
收集整理的這篇文章主要介紹了
01背包问题--动规
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有n個物品,每個的體積V[i],價值W[i]。現有一個體積為V的背包。怎么裝才能裝的物品總價值最高?
代碼如下:
/* 01背包 2015年8月27日09:56:48*/#include<stdio.h>int dp[10000];int max (int a , int b){return a>b?a:b;}int main (){int n ;int C ;int i , j ;int V,W;scanf("%d%d",&n,&C);for ( i = 0 ; i <= n ; i ++){if ( i > 0 )scanf("%d%d",&V,&W);for ( j = C ; j >= 0 ; j --){if (j>=V && i > 0)dp [j] = max (dp[j] , dp[j-V]+W);else{dp[j] = 0 ;}}}printf("%d",dp[C]);return 0;}示例
5 10 4 9 3 6 5 1 2 4 5 1 輸出 19
總結
以上是生活随笔為你收集整理的01背包问题--动规的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人见人爱A-B
- 下一篇: jsp用include指令引入html时