3 条题解
-
0
纠正题解
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+5; int n,m,v[105],w[105],dp[maxn],Max; int main(){ std::ios::sync_with_stdio(false);//false应为小写 cin>>n>>m;Max=n*1000; for(int i=1;i<=n;++i)cin>>w[i]>>v[i]; memset(dp,0x3f,sizeof(dp)); dp[0]=0; for(int i=1;i<=n;++i){ for(int j=Max;j>=v[i];--j){ dp[j]=min(dp[j],dp[j-v[i]]+w[i]); } } for(int i=Max;i;--i){ if(dp[i]<=m){ cout<<i; return 0; } } return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+5; int n,m,v[105],w[105],dp[maxn],Max; int main(){ std::ios::sync_with_stdio(False); cin>>n>>m;Max=n*1000;//最大价值 for(int i=1;i<=n;++i)cin>>w[i]>>v[i]; memset(dp,0x3f,sizeof(dp)); dp[0]=0; for(int i=1;i<=n;++i){ for(int j=Max;j>=v[i];--j){ dp[j]=min(dp[j],dp[j-v[i]]+w[i]); } } for(int i=Max;i;--i){ if(dp[i]<=m){ cout<<i; return 0; } } return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+5; int n,m,v[105],w[105],dp[maxn],Max; int main(){ std::ios::sync_with_stdio(False); cin>>n>>m; Max=n*1000;//最大价值 for(int i=1;i<=n;++i)cin>>w[i]>>v[i]; memset(dp,0x3f,sizeof(dp)); dp[0]=0; for(int i=1;i<=n;++i){ for(int j=Max;j>=v[i];--j){ dp[j]=min(dp[j],dp[j-v[i]]+w[i]); } } for(int i=Max;i;--i){ if(dp[i]<=m){ cout<<i; return 0; } } return 0; }
- 1
信息
- ID
- 1493
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 6
- 标签
- 递交数
- 104
- 已通过
- 29
- 上传者