标签:表示 highlight pac turn def col space void pre
通用
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #define maxn 1100 using namespace std; //dp[i][j]-----表示从第i个开始选,重量不超过j的价值 int dp[maxn][maxn]; int weight[maxn],value[maxn]; int n;//总个数 int W;//允许最大重量 void init() { memset(dp,0,sizeof(dp)); scanf("%d%d",&n,&W); for(int i=0;i<n;i++) scanf("%d%d",&weight[i],&value[i]); }
dp算法
int main()
{
init();
for(int i=n-1;i>=0;i--)
{
for(int j=0;j<=W;j++)
{
if(weight[i]>j)
dp[i][j]=dp[i+1][j];
else
dp[i][j]=max(dp[i+1][j],dp[i+1][j-weight[i]]+value[i]);
}
}
cout<<dp[0][W]<<endl;
return 0;
}
暴力算法
int work(int nn,int wei)//到第n个,剩余重量为weight
{
int res=0;
if(nn==n)
return res;
if(wei<weight[nn])
res=work(nn+1,wei);
else
res=max(work(nn+1,wei),work(nn+1,wei-weight[nn])+value[nn]);
return res;
}
int main()
{
init();
cout<<work(0,W);
return 0;
}
标签:表示 highlight pac turn def col space void pre
原文地址:https://www.cnblogs.com/Joe2019/p/14404187.html