Information
- ID
- 677
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 7
- Accepted
- 4
- Uploaded By
#include<bits/stdc++.h>
using namespace std;
const int N=35,M=85;
int f[N][M];
int main()
{
int v,m,n;
cin>>v>>m>>n;
memset(f,0x3f,sizeof f);
f[0][0]=0;
for(int k=1;k<=n;k++)
{
int v1,m1,w;
cin>>v1>>m1>>w;
for(int i=v;i>=0;i--)
{
for(int j=m;j>=0;j--)
{
f[i][j]=min(f[i][j],f[max(0,i-v1)][max(0,j-m1)]+w);
}
}
}
if(f[v][m]==0x3f3f3f3f)
{
cout<<-1;
}
else
{
cout<<f[v][m];
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=35,M=85;
int f[N][M]; //f[i][j]表示氧气含量至少为i,燃料值至少为j的最低重量
int main()
{
int v,m,n;
cin>>v>>m>>n;
memset(f,0x3f,sizeof f);
f[0][0]=0;
for(int k=1;k<=n;k++)
{
int v1,m1,w;
cin>>v1>>m1>>w;
for(int i=v;i>=0;i--)
{
for(int j=m;j>=0;j--)
{
f[i][j]=min(f[i][j],f[max(0,i-v1)][max(0,j-m1)]+w);
}
}
}
if(f[v][m]==0x3f3f3f3f)
{
cout<<-1;
}
else
{
cout<<f[v][m];
}
return 0;
}