5 条题解
-
2
#include<bits/stdc++.h> #define int long long using namespace std; const int N=1e3+520; int w1[N],w2[N]; int n,m,hp; int dp[N][N]; signed main(){ cin>>m>>hp>>n; for(int i=1;i<=n;i++){ cin>>w1[i]>>w2[i]; } for(int i=1;i<=n;i++){ for(int j=m;j>=w1[i];j--){ for(int k=hp;k>=w2[i];k--){ dp[j][k]=max(dp[j][k],dp[j-w1[i]][k-w2[i]]+1); } } } cout<<dp[m][hp]<<" "; for(int i=0;i<=hp;i++){ if(dp[m][hp]==dp[m][i]){ cout<<hp-i; return 0; } } return 0; } //说好不哭
信息
- ID
- 3021
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 183
- 已通过
- 70
- 上传者