學習了二進位制優化,吼吼!寫個模板,雖然這種型別並不需要模板,但是寫乙個,備忘……
模板:
int dp[n];
void onezeropack( int v , int n , int w )
void completepack( int v , int n , int w )
void multipliepack( int v , int c, int w , int n)
int k = 1 ;
while( k < n )
onezeropack( v , n*c , n*w ) ;
}
我的**:
hdu1059 dividing
#include #include #include using namespace std;
#define n 60006
#define max(a,b) a > b ? a : b
int v,num[7],dp[n];
void onezeropack(int c)
}void completepack(int c)
void multiplepack()
onezeropack( num[i]*i ) ;}}
}int main()
if( !sum )
break ;
printf( "collection #%d:\n" ,count ) ;
if( sum&1 )
printf( "can't be divided.\n\n" ) ;
else
}return 0;
}
hdu 2191悼念512汶川大**遇難同胞——珍惜現在,感恩生活
#include #include #include #include #include #include #include //#define local
#define n 105
using namespace std;
int dp[n];
void onezeropack( int v , int n , int w )
void completepack( int v , int n , int w )
void multipliepack( int v , int c, int w , int n)
int k = 1 ;
while( k < n )
onezeropack( v , n*c , n*w ) ;
}int main()
printf( "%d\n" , dp[n] );
}return 0;
}
感謝 xiaod牛! 多重揹包模板
有n種物品和乙個容量為v的揹包。第i種物品最多有num i 件可用,每件費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。多重揹包問題的思路跟完全揹包的思路非常類似,只是k的取值是有限制的,因為每件物品的數量是有限制的,狀態轉移方程為 dp i ...
多重揹包模板
多重揹包模板 1.多重揹包 優化 例題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納的最大價值。input 第1行,2個整數,n和w中間用空格隔開。n為物...
多重揹包模板
hdu 2844 二進位制優化 includeusing namespace std define maxn 100500 define ll long long ll n,m ll num maxn v maxn w maxn ll dp maxn void zeroonepack ll w,ll...