完全なバックパックの問題(スペース最適化、印刷パス)
1345 ワード
//HDU1114
// : HDU1114
// : N , i vc[i], w[i],
// C ,
// :dp[i][v]=max(dp[i-1][v],dp[i][v-vc[i]]+w[i])
// :dp[v]=max(dp[v],dp[v-vc[i]+w[i])
// ; dp
// dp 0,dp[0]=0; dp=inf(inf )dp[0]=0;
#include
#include
#define maxn 505
#define inf 0x3f3f3f3f
using namespace std;
int p[maxn];int w[maxn];
int dp[10005];
int path[maxn][10005];//
int min(int a,int b)
{
if(a>t;
while(t--)
{
int E,F;cin>>E>>F;
int n;cin>>n;
for(int i=0;i>p[i]>>w[i];
memset(dp,inf,sizeof(dp));dp[0]=0;
memset(path,0,sizeof(path));
// :memset(dp,-inf,sizeof(dp));dp[0]=0;
for(int i=0;idp[j-w[i]]+p[i])
{
dp[j]=dp[j-w[i]]+p[i];
path[i][j]=1;//
}
}
}
if(dp[F-E]!=inf)cout<=0&&j>=0)
{
if(path[i][j])
{
cout<