“ Ctrl AC!一起 AC!”
原题:Coins
我的翻译:
描述:
有N种硬币。每种硬币都有一个值V和一个重量W。托尼想去旅行。不幸的是,他只能携带总重量不超过K的硬币。他最多可以携带多少总价值的硬币?
输入:
第一行:两个正整数N(N<=100)和K(K<=1000)。接下来的N行:第i行是两个正整数V和W(V,W<=1000),表示第i枚硬币的价值和重量。
输出:
一个整数,表示最多硬币的总价值。
AC代码:
离谱的AC,此题的判题系统有大问题,看看参考代码即可。
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<4;
}
参考代码:
0-1背包问题模板题。
#include<iostream>
using namespace std;
int dp[105][1005];
int v[105];
int w[105];
int main(){
int n,k;cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>v[i]>>w[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=k;j++){
if(j>=w[i])
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
else
dp[i][j]=dp[i-1][j];
}
}
cout<<dp[n][k]<<endl;
return 0;
}
感谢阅读!!!
“ Ctrl AC!一起 AC!”