提交时间:2024-06-13 13:01:52

运行 ID: 151226

#include<bits/stdc++.h> using namespace std; int n,m; int k; struct air{ int a, b, c; }h[1001]; int dp[101][101]; int o2 = 0,n2 = 0; int main() { scanf("%d %d" ,&m,&n); scanf("%d" ,&k); memset(dp,0x3f,sizeof(dp)); dp[0][0] = 0; for(int i = 1;i <= k; i++){ scanf("%d %d %d" ,&h[i].a,&h[i].b,&h[i].c); } for(int i = 1;i <= k; i++){ for(int j = m;j >= 0; j--){ for(int k = n;k >= 0; k--){ int o2 = j + h[i].a; int n2 = k + h[i].b; if(o2 > m) o2 = m; if(n2 > n) n2 = n; dp[o2][n2] = min(dp[o2][n2],dp[j][k] + h[i].c); } } } printf("%d" ,dp[m][n]); return 0; }