第一步:
利用一维数组推导出氧气
#include <bits/stdc++.h>
using namespace std;
int main(){
int m;//氧气需求量
int k;//气缸个数
int a[1001];//第i个气缸里的氧气容量
int c[1001]; //气缸重量
cin>>m;
cin>>k;
for(int i=1;i<=k;i++)
cin>>a[i]>>c[i];
int f[1001][22];
memset(f,801,sizeof(f));
//利用状态转移方程推导完成任务的最低重量
for(int i=1;i<=k;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i]>=j)
{
f[i][j]=min(f[i-1][j],c[i]);
}
else
{
f[i][j]=min(f[i-1][j],c[i]+f[i-1][j-a[i]]);
}
}
}
cout<<f[k][m]<<endl;
return 0;
}
/*
5
5