记录编号 580515 评测结果 AAAAAAAAAA
题目名称 [POI 1998] 潜水员的问题 最终得分 100
用户昵称 Gravatar在大街上倒立游泳 是否通过 通过
代码语言 C++ 运行时间 0.169 s
提交时间 2023-07-24 17:12:01 内存使用 3.45 MiB
显示代码纯文本
//made by---->    //              //
                 //\\            //
                // \\           //
               //   \\         //
              //    \\        //
             //////////////////
            //       \\     //
           //         \\   //
          //          \\  //
         //            \\//
        //////////////////
#include<bits/stdc++.h>
using namespace std;
int m,n,k;
int a[1002],b[1005],c[1005],f[25][85];
void shu(){
    for(int i=0;i<=m;i++){
        for(int j=0;j<=n;j++){
            cout<<f[i][j]<<' ';
        }
        cout<<endl;
    }
}
int main(){
    freopen("ple.in","r",stdin);
   freopen("ple.out","w",stdout);
    cin>>m>>n>>k;
    for(int i=1;i<=k;i++) cin>>a[i]>>b[i]>>c[i];
    memset(f,0x3f,sizeof(f));
    f[0][0]=0;
    for(int i=1;i<=k;i++){
        for(int yang=m;yang>=0;yang--){
            for(int dan=n;dan>=0;dan--){
                if(a[i]>=yang&&b[i]>=dan) f[yang][dan]=min(f[yang][dan],c[i]);
                else if(f[max(yang-a[i],0)][max(dan-b[i],0)]!=0x3f3f3f3f) f[yang][dan]=min(f[yang][dan],f[max(yang-a[i],0)][max(dan-b[i],0)]+c[i]);
            }
        }
        //shu();
    }
    
    cout<<f[m][n];
    return 0;
}
          //              //
         //\\            //
        // \\           //
       //   \\         //
      //    \\        //
     //////////////////
    //       \\     //
   //         \\   //
  //          \\  //
 //            \\//
//////////////////