代码拉取完成,页面将自动刷新
// #include<iostream>
// using namespace std;
// const int N=1010;
// int n,m,v[N],w[N],f[N][N];
// int main()
// {
// cin>>n>>m;
// for(int i = 1 ; i <= n ;i ++)
// {
// scanf("%d %d",&v[i],&w[i]);
// }
// for(int i=1;i<=n;i++)
// {
// for(int j=0;j<=m;j++)
// {
// for(int k=0;k*v[i]<=j;k++)
// f[i][j]=max(f[i][j],f[i-1][j-k*v[i]]+k*w[i]);//朴素二维数组写法(容易tle)
// }
// }
// printf("%d\n",f[n][m]);
// return 0;
// }
// #include<iostream>
// using namespace std;
// const int N=1010;
// int n,m,v[N],w[N],f[N][N];
// int main()
// {
// cin>>n>>m;
// for(int i = 1 ; i <= n ;i ++)
// {
// scanf("%d %d",&v[i],&w[i]);
// }
// for(int i=1;i<=n;i++)
// {
// for(int j=0;j<=m;j++)
// {
// f[i][j]=f[i-1][j];
// if(j>=v[i]) f[i][j]=max(f[i][j],f[i][j-v[i]]+w[i]);//二维数组优化写法
// }
// }
// printf("%d\n",f[n][m]);
// return 0;
// }
#include<iostream>
using namespace std;
const int N = 1010;
int f[N];
int v[N],w[N];
int main()
{
int n,m;
cin>>n>>m;
for(int i = 1 ; i <= n ;i ++)
{
cin>>v[i]>>w[i];
}
for(int i = 1 ; i<=n ;i++)
for(int j = v[i] ; j<=m ;j++)
{
f[j] = max(f[j],f[j-v[i]]+w[i]);//一维数组优化写法
}
cout<<f[m]<<endl;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。