1 条题解
-
0
简单dp(背包)。
#include<bits/stdc++.h> #define ll long long using namespace std; ll n,m; struct hay{ ll a,b; }a[100010]; ll dp[100010]; int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>>a[i].a; } dp[0]=0; for(int i=1;i<=m;i++){ for(int j=n;j>=0;j--){ if(j>=a[i].a){ dp[j]=max(dp[j],dp[j-a[i].a]+a[i].a); } } } cout<<dp[n]; return 0; }
- 1
信息
- ID
- 1156
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 7
- 已通过
- 6
- 上传者