提交时间:2024-05-26 11:26:50

运行 ID: 149268

#include<iostream> using namespace std; int a[1001],b[1001],c[1001],dp[22][80]; int main(){ int m,n,k; cin>>m>>n; cin>>k; for(int i=0;i<=21;i++){ for(int j=0;j<=79;j++){ dp[i][j]=0x7f7f7f7f; } } dp[0][0]=0; for(int i=1;i<=k;i++){ cin>>a[i]>>b[i]>>c[i]; } for(int i=1;i<=k;i++){ for(int j=m;j>=0;j--){ for(int k=n;k>=0;k--){ if(j<a[i]){ dp[j][k]=min(dp[j][k],dp[0][k-b[i]]+c[i]); } else if(k<b[i]){ dp[j][k]=min(dp[j][k],dp[j-a[i]][0]+c[i]); } else dp[j][k]=min(dp[j][k],dp[j-a[i]][k-b[i]]+c[i]); } } } cout<<dp[m][n]<<endl; return 0; }