1 条题解
-
0
思路
球数及体力双限制,体力必须严格为正,同数量下最小伤害。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){int n,m,k;cin>>n>>m>>k;vector<vector<int>>d(n+1,vector<int>(m));while(k--){int b,h;cin>>b>>h;for(int x=n;x>=b;x--)for(int y=m-1;y>=h;y--)d[x][y]=max(d[x][y],d[x-b][y-h]+1);}int best=d[n][m-1],spent=0;while(d[n][spent]!=best)spent++;cout<<best<<' '<<m-spent<<'\n';}
- 1