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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

计算首站到末站最小费用

發布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算首站到末站最小费用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* ? 問題描述 長江游艇俱樂部在長江上設置了n個游艇出租站1,2,…,n。游客可在這些游艇出租站租用游艇,并在下游的任何一個游艇出租站歸還游艇。游艇出租站i到游艇出租站j之間的租金為r(i,j),1?i<j?n。試設計一個算法,計算出從游艇出租站1到游艇出租站n所需的最少租金。計算從首站到末站的最小費用 第一行數字表示有n個站點 后邊的第x行第y列的數字表示從第x站到第x+y站的費率 輸入文件示例 輸出文件示例 input.txt output.txt 3 5 15 12 7 input.txt output.txt 4 15 3 7 19 5 13 8*/#include<iostream> #include<fstream> #include<string>using namespace std; //在測試條件下最大值設置為6已經夠用 //也可以更大 const int max = 6;//參數begin、end代表索引(index),從0開始而非從1開始 //參數begin、end分別為要求解的起始站點和最終站點的索引 //使用dp[x][y]存儲從x到y的最小費用 //使用port[x][y]存儲題目給出的直接從x到y的價格, //實際上dp與port都只用了一個三角矩陣,但為了方便還是分配整個矩陣的空間 //返回值僅對于最上層的調用有意義,內部的遞歸調用的返回值沒有用處 //事實上也可以不要返回值,因為返回值就在dp[begin][end]中,可以取出 int solve(int dp[max][max], int port[max][max], int end, int begin) {//臨時變量,為了VC中調試時鼠標指上去觀察數值,實際上可以不要int ret = -1;//從站點出發到自身,不花錢,記錄在dp中if (begin == end) {dp[begin][end] = 0;ret = dp[begin][end];return 0;}//如果兩站相鄰,則直接到達的費用就是最小費用,記錄在dp中else if (begin == end - 1) {dp[begin][end] = port[begin][end];ret = dp[begin][end];return dp[begin][end];}//如果兩站相隔較遠,則比較麻煩//出發站到末站的最小費用是直接到達和經過其他站轉到的各種情況的費用中最小的那個//A到D的最小費用為min(A到B的最小費用+B到D的最小費用,//A直接到C 的最小費用+C到D的最小費用,A直接到D的最小費用)else if (end - begin > 1) {int min = port[begin][end]; //直接到達的費用總是已知的//用一個循環遍歷查找最小值for (int i = 1; i < end - begin; i++) {//如果中轉站到末站的費用還是未知,則先遞歸算出來再使用if (dp[begin + i][end] == -1) {solve(dp, port, end, begin + i);}//如果起始站到中轉站的費用還是未知,則先遞歸算出來再使用if (dp[begin][begin + i] == -1) {solve(dp, port, begin + i, begin);}//如果到某個中轉站的費用更小,則把最小值更新為這個費用if (min > dp[begin + i][end] + dp[begin][begin + i]) {min = dp[begin + i][end] + dp[begin][begin + i];}}//把最小費用填入表格,以供使用dp[begin][end] = min;}else {//其他情況提示出錯cout << "ERROR!" << endl;getchar();getchar();exit(-1);}//現實計算結果以便檢查,并返回cout << dp[begin][end] << endl;return dp[begin][end]; }int main() {//讀取文件 fstream fs;fs.open("input.txt", ios::in);int n; //站點數量int dp[max][max]; //存放任意兩站之間的最小費用的表int port[max][max]; //存儲初始信息,各站點直達其他站點的費用 fs >> n;cout << n << endl;//初始化,以-1為空值for (int i = 0; i < n; i++){for (int j = 0; j < n; j++) {dp[i][j] = -1;port[i][j] = -1;}}//讀取并儲存第x站到第y站的費率for (int i = 0; i < n - 1; i++) {for (int j = i + 1; j < n; j++) {fs >> port[i][j];cout << port[i][j] << '\t';}cout << endl;}//結束讀取,關閉文件 fs.close();int ret = solve(dp, port, n - 1, 0);//結果寫入到文件fs.open("output.txt", ios::out);fs << ret;fs.close();cout << ret << endl;cout << "Finish" << endl;cin >> n;return 0; }

?

轉載于:https://www.cnblogs.com/memoryLost/p/10629534.html

總結

以上是生活随笔為你收集整理的计算首站到末站最小费用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 136fldh导航福利微拍 | 那里可以看毛片 | 天天免费看av| 国产猛男猛女超爽免费视频 | 成年人福利网站 | 日韩视频在线播放 | 成人av网站在线 | 97在线国产 | 亚洲大片在线观看 | 久久久久久久久久网 | 在线观看1区 | 亚洲精品系列 | 男人的天堂aa | 日本www在线观看 | 国产高潮在线观看 | 欧美浮力影院 | 久久久久精彩视频 | 91精品网站 | 尤物国产视频 | 两口子交换真实刺激高潮 | 亚洲国产福利 | 国产激情久久久 | 国产成人精品片 | 手机在线免费看av | 在线不卡毛片 | 在线观看国产精品入口男同 | 蜜桃色一区二区三区 | 黄黄的网站 | 免费小视频在线观看 | 欧美一区二区三区啪啪 | 国产精成人 | 综合久久五月天 | 在线观看欧美一区二区 | 国内久久精品视频 | 欧美在线精品一区二区三区 | 国产乱人伦 | www.com色 | 91女人18毛片水多国产 | 亚洲精品久久久中文字幕痴女 | 另类老妇性bbwbbw图片 | 日韩阿v | 开心春色激情网 | 男人操女人动态图 | 给我免费观看片在线电影的 | 奇米综合 | 精品五月天 | 中文字幕一二三四 | 久久四色 | 日本精品网 | 友田真希一区二区 | 在线高清观看免费 | 日本高清免费aaaaa大片视频 | 日本捏奶吃奶的视频 | 亚洲第一淫片 | 毛片3| 国产精品高潮呻吟久久久久久 | 欧美xxxxx视频| 欧美视频a | 日本福利片在线观看 | 国产精品网站入口 | 亚洲精品亚洲人成人网 | aaaaa毛片| 欧美一区二区福利 | 香蕉视频免费在线观看 | 黄色特级视频 | 高潮毛片又色又爽免费 | 日韩伦理一区二区三区 | 亚洲精品韩国 | 在线观看免费www | 亚洲av无码国产精品久久不卡 | 国产高清在线免费观看 | 日韩精品久久久久久久电影99爱 | 中文字幕在线观看不卡 | 国产日韩欧美视频 | 永久免费在线播放 | 日日夜夜精品 | 日日夜夜亚洲 | 黄网站免费视频 | 狼人综合伊人 | 一二三av | 福利所导航 | 精品视频不卡 | 亚洲成人精品在线观看 | 欧美性网站 | 亚洲一区二区中文 | 西西人体44www大胆无码 | 亚洲久爱| 日本乱码视频 | 亚洲69视频 | 日韩乱码一区二区三区 | 国产一级视频在线观看 | www日本高清视频 | www.天天干| 国产白浆在线观看 | 国内激情视频 | 午夜性福利视频 | 一级全黄色片 | 久久久久久久久久久影院 | 神马午夜在线 |