1292:宠物小精灵之收服

宠物小精灵之收服

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 const int N=105;
 8 int a[N],b[N],f[1005][505];
 9 int main(){
10     int n,m,t,maxx=0,pow=505;
11     cin>>n>>m>>t;
12     for(int i=1;i<=t;i++)
13         scanf("%d%d",&a[i],&b[i]);
14     for(int i=1;i<=t;i++)
15         for(int j=n;j>=0;j--)
16             for(int k=m;k>=0;k--){
17                 int t1=j+a[i],t2=k+b[i];
18                 if(t1<=n&&t2<=m){
19                     f[t1][t2]=max(f[t1][t2],f[j][k]+1);//f[i][j]表示消耗i精灵球j体力时最多能捕获的精灵数量
20                     if(f[t1][t2]>maxx||(f[t1][t2]==maxx&&pow>t2)){
21                         maxx=f[t1][t2];
22                         pow=t2;
23                     }
24                 }
25             }
26     cout<<maxx<<" "<<m-pow;
27     return 0;
28 }

 

posted @ 2021-08-17 10:35  Rekord  阅读(236)  评论(0编辑  收藏  举报