1 solutions
-
0
其实是假贪心,正解要dp一下……#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 111111; int n, m; struct aaa{ int x, y; }a[N]; ll dp[N], ans; int main(){ cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i].x>>a[i].y; for(int i=0;i<n;i++) for(int j=m-a[i].x;j>=0;j--) dp[j+a[i].x] = max(dp[j] + a[i].y, dp[j+a[i].x]); cout<<dp[m]<<endl; return 0; }
- 1
Information
- ID
- 537
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- # Submissions
- 17
- Accepted
- 2
- Uploaded By