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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

10099 The Tourist Guide

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10099 The Tourist Guide 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:給出n的城市m條通道,然后每條通道最大的承載人數給出來了,然后給出起點和終點以及要搭載的人數,問最少要走多少次才能把全部游客送到目的地

因為導游每次都要跟團,所以每條交通道路搭載的最大人數要減1= =

克魯斯卡爾算法,就會排序的時候按照運輸人數的從大到小排序,然后當起點和終點在一個聯通分支時即可

#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; const int maxn=10000; int n,m; int p[maxn]; struct node {int u,v,num; }; bool cmp(node a,node b) {return a.num>b.num; } void init() {for(int i=1;i<=n;i++)p[i]=i; } int find(int x) {return p[x]==x ? x :find(p[x]); } node a[maxn]; int main() {int t=0;while(scanf("%d %d",&n,&m)!=EOF){if(!n&&!m) break;init();for(int i=0;i<m;i++){scanf("%d %d %d",&a[i].u,&a[i].v,&a[i].num);}sort(a,a+m,cmp);int s,e,sum;scanf("%d %d %d",&s,&e,&sum);int k=0;for(int i=0;i<m;i++){int fx=find(a[i].u);int fy=find(a[i].v);if(fx!=fy)p[fx]=fy;if(find(s)==find(e)){k=i;break;}} int num=a[k].num;num--; int ans;if(sum%num==0)ans=sum/num;elseans=sum/num+1;printf("Scenario #%d\n",++t);printf("Minimum Number of Trips = %d\n\n",ans);}return 0; }

?

轉載于:https://www.cnblogs.com/NaCl/p/9580150.html

總結

以上是生活随笔為你收集整理的10099 The Tourist Guide的全部內容,希望文章能夠幫你解決所遇到的問題。

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