原来做网站后来跑国外了,30天网站建设 视频,网络seo培训,女性健康网站源码其实这是一道例题#xff0c;但确实是我做过最难#xff08;其他的水到炸#xff09;的一道二维费用 Description 潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸#xff1a;一个为氧气#xff0c;一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水…其实这是一道例题但确实是我做过最难其他的水到炸的一道二维费用 Description 潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸一个为氧气一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少 例如潜水员有5个气缸。每行三个数字为氧氮的升量和气缸的重量 3 36 120 10 25 129 5 50 250 1 45 130 4 20 119 如果潜水员需要5升的氧和60升的氮则总重最小为249 12或者45号气缸。 你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。 Input 从文本文件gas.in中读入数据。 第一行有2整数ta1t211a79。它们表示氧氮各自需要的量。 第二行为整数n 1n1000表示气缸的个数。 此后的n行每行包括tiaiwi1ti211ai791wi8003整数。这些各自是第i个气缸里的氧和氮的容量及汽缸重量。 Output 仅一行包含一个整数为潜水员完成工作所需的气缸的重量总和的最低值。 Sample Input 5 60 5 3 36 120 10 25 129 5 50 250 1 45 130 4 20 119 Sample Output 249
解题思路 因为这里是求最小值所以这里我就反推吧。emmmmmmmmmmmmmm? 代码 #includecstdio
#includeiostream
using namespace std;
int v,u,n,vh[1001],uh[1001],w[1001];
int f[101][101];
int main()
{memset(f,127,sizeof(f));f[0][0]0;scanf(%d%d%d,v,u,n);for (int i1;in;i) scanf(%d%d%d,vh[i],uh[i],w[i]);//输入for (int i1;in;i)for (int jv;j0;j--)for (int ku;k0;k--)//循环两个费用{int t1jvh[i],t2kuh[i];//反推if (t1v) t1v;//避免过大if (t2u) t2u;//避免过大f[t1][t2]min(f[t1][t2],f[j][k]w[i]);//求最小值}printf(%d,f[v][u]);
}