日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

潜水员(信息学奥赛一本通-T1271)

發布時間:2025/3/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 潜水员(信息学奥赛一本通-T1271) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目描述】

潛水員為了潛水要使用特殊的裝備。他有一個帶2種氣體的氣缸:一個為氧氣,一個為氮氣。讓潛水員下潛的深度需要各種的數量的氧和氮。潛水員有一定數量的氣缸。每個氣缸都有重量和氣體容量。潛水員為了完成他的工作需要特定數量的氧和氮。他完成工作所需氣缸的總重的最低限度的是多少?

例如:潛水員有5個氣缸。每行三個數字為:氧,氮的(升)量和氣缸的重量:

3 36 120

10 25 129

5 50 250

1 45 130

4 20 119

如果潛水員需要5升的氧和60升的氮則總重最小為249(1,2或者4,5號氣缸)。

你的任務就是計算潛水員為了完成他的工作需要的氣缸的重量的最低值。

【輸入】

第一行有2整數m,n(1≤m≤21,1≤n≤79)。它們表示氧,氮各自需要的量。

第二行為整數k(1≤n≤1000)表示氣缸的個數。

此后的k行,每行包括ai,bi,ci(1≤ai≤21,1≤bi≤79,1≤ci≤800)3整數。這些各自是:第i個氣缸里的氧和氮的容量及汽缸重量。

【輸出】

僅一行包含一個整數,為潛水員完成工作所需的氣缸的重量總和的最低值。

【輸入樣例】

5 60
5
3 36 120
10 25 129
5 50 250
1 45 130
4 20 119

【輸出樣例】

249

【源程序】

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<cstdlib> #include<queue> #include<vector> #define INF 0x3f3f3f3f #define PI acos(-1.0) #define N 1001 #define MOD 2520 #define E 1e-12 using namespace std; int m,n,k; int a[N],b[N],c[N],f[N][N]; void TwoDimensionPack(int weight_1,int weight_2,int cost) {for(int j=m;j>=0;j--){for(int k=n;k>=0;k--){int u=j+weight_1;int v=k+weight_2;if(u>=m)u=m;if(v>=n)v=n;f[u][v]=min(f[u][v],f[j][k]+cost);}} } int main() {cin>>m>>n>>k;for(int i=1;i<=k;i++)cin>>a[i]>>b[i]>>c[i];memset(f,INF,sizeof(f));f[0][0]=0;for(int i=1;i<=k;i++)TwoDimensionPack(a[i],b[i],c[i]);cout<<f[m][n]<<endl;return 0; }

?

總結

以上是生活随笔為你收集整理的潜水员(信息学奥赛一本通-T1271)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。