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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ 1251. 收费站

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 1251. 收费站 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

在某個遙遠的國家里,有n個城市。編號為1,2,3,……,n。 這個國家的政府修建了m條雙向的公路。每條公路連接著兩個城市。沿著某條公路,開車從一個城市到另一個城市,需要花費一定的汽油。開車每經過一個城市,都會被收取一定的費用(包括起點和終點城市)。所有的收費站都在城市中,在城市間的公路上沒有任何的收費站。小紅現在要開車從城市u到城市v(1<=u,v<=n)。她的車最多可以裝下s升的汽油。在出發的時候,車的油箱是滿的,并且她在路上不想加油。在路上,每經過一個城市,她要交一定的費用。如果她某次交的費用比較多,她的心情就會變得很糟。所以她想知道,在她能到達目的地的前提下,她交的費用中最多的一次最少是多少。這個問題對于她來說太難了,于是她找到了聰明的你,你能幫幫她嗎?

Input

第一行5個正整數,n,m,u,v,s。分別表示有n個城市,m條公路,從城市u到城市v,車的油箱的容量為s升。接下來有n行,每行1個正整數,fi。表示經過城市i,需要交費fi元。 再接下來有m行,每行3個正整數,ai,bi,ci(1<=ai,bi<=n)。表示城市ai和城市bi之間有一條公路,如果從城市ai到城市bi,或者從城市bi到城市ai,需要用ci升汽油。

Output

僅一個整數,表示小紅交費最多的一次的最小值。 如果她無法到達城市v,輸出-1。

Sample Input

輸入樣例1

4 4 2 3 8
8
5
6
10
2 1 2
2 4 1
1 3 4
3 4 3

輸入樣例2

4 4 2 3 3
8
5
6
10
2 1 2
2 4 1
1 3 4
3 4 3

Sample Output

輸出樣例1

8

輸出樣例2

-1

Data Constraint

數據規模 對于60%的數據,滿足n<=200,m<=19900,s<=200,沒有一條邊連接著兩個相同的城市。
對于100%的數據,滿足n<=10000,m<=50000,s<=1000000000,可能有兩條邊連接著相同的城市。
對于100%的數據,滿足ci<=1000000000,fi<=1000000000

Solution

  • 這題又是套路——雙條件問題,果斷轉換成 二分+判斷性問題

  • 考慮二分答案,即得到一個城市花費的上限

  • 之后,以起點進行一次 SPFA ,中途不能遍歷超過上限的點

  • 最后看終點是否能被遍歷到,再修改二分上下界即可!

  • 然而心機出題人的數據竟然能卡掉強悍的 SPFA,時間略微上溢

  • 于是考慮使用堆維護 SPFA 中的節點,使其遠者優先,提高效率

  • 注: 為了方便,以下標程中使用 C++ 優先隊列并重載運算符。

Code

#include<cstdio> #include<queue> using namespace std; const int N=10001; struct data {int node,pay; }que[N]; int tot,n,m,u,v,s; long long sum,dis[N]; int f[N]; int first[N],next[N*10],en[N*10],w[N*10]; bool bz[N]; inline int read() {int data=0; char ch=0;while(ch<'0' || ch>'9') ch=getchar();while(ch>='0' && ch<='9') data=data*10+ch-'0',ch=getchar();return data; } inline void insert(int x,int y,int z) {next[++tot]=first[x];first[x]=tot;en[tot]=y;w[tot]=z; } struct cmp {bool operator()(int x,int y){return dis[x]>dis[y];} }; inline bool spfa(int lim) {if(f[u]>lim || f[v]>lim) return false;priority_queue <int,vector<int>,cmp> que;for(int i=1;i<=n;i++) dis[i]=sum;dis[u]=0;que.push(u);while(!que.empty()){int now=que.top();que.pop();bz[now]=false;for(int i=first[now];i;i=next[i]){if(f[en[i]]>lim) continue;if(dis[now]+w[i]<dis[en[i]]){dis[en[i]]=dis[now]+w[i];if(!bz[en[i]]){bz[en[i]]=true;que.push(en[i]);}}}}return dis[v]<=s; } int main() {n=read(),m=read(),u=read(),v=read(),s=read();int l=1e9,r=0;for(int i=1;i<=n;i++){f[i]=read();if(f[i]>r) r=f[i]; elseif(f[i]<l) l=f[i];}for(int i=1;i<=m;i++){int x=read(),y=read(),z=read();if(x==y) continue;sum+=z;insert(x,y,z);insert(y,x,z);}int ans=-1;while(l<=r){int mid=(l+r)>>1;if(spfa(mid)){ans=mid;r=mid-1; }else l=mid+1;}printf("%d",ans);return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 1251. 收费站的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久av影视 | 国内精品国产三级国产aⅴ久 | 欧洲精品在线播放 | 国产成人无码一区二区三区在线 | 欧美日韩视频在线 | 久草最新视频 | 91丝袜一区在线观看 | 欧美视频在线不卡 | а√天堂资源在线 | 国产剧情一区 | 视频二区| 日本一区二区不卡视频 | 亚洲乱码国产乱码精品精的特点 | 欧美另类高清 | 国产极品久久 | 天海翼一区| 伊人亚洲精品 | 国产怡红院 | 69精品国产| 蜜桃臀av | 亚洲va在线观看 | 在线视频啪 | 亚洲一区二区三区在线看 | 精品99久久久久成人网站免费 | 亚洲色图影院 | 日日热| 亚洲av无码国产精品久久不卡 | 国产精品久久久久久亚洲调教 | 麻豆视频传媒入口 | 五月婷婷综合在线观看 | 日本乱码视频 | 91国模| 国产精品第2页 | 一本色道久久88综合无码 | 超碰人操 | 69视频免费在线观看 | 欧美精品一区二区性色a+v | 正在播放经典国语对白 | 精品久久久久久久久久久久久久久久久久 | 中文字幕第一页在线播放 | 亚洲视频福利 | 成人午夜视频在线 | 第一章激情艳妇 | 日韩一区二区三区在线观看 | 天天操夜夜爱 | 欧美一级片a | 天天视频色 | 肥臀浪妇太爽了快点再快点 | www.超碰在线观看 | 丝袜诱惑一区 | 日本丰满大乳奶做爰 | 99少妇| 91精品亚洲一区 | 韩国毛片一区二区 | 欧美精品在线观看 | 综合99 | 成人免费毛片xxx | 先锋影音男人 | 人与禽一级全黄 | 对白刺激国产子与伦 | 中文字幕一区二区三区精品 | 久久人妻少妇嫩草av蜜桃 | 涩涩涩综合 | 天堂成人在线观看 | 伊人久久五月天 | 一级片小视频 | 天天干网 | 综合激情久久 | 极品五月天 | 日出白浆视频 | 特黄a级片| 香蕉网伊 | 狠狠操在线视频 | 美女隐私无遮挡免费 | 国产一区二区日韩 | 亚洲一区不卡 | 四虎成人永久免费视频 | 亚洲射图 | 日本一区二区三区中文字幕 | 手机av在线看 | 狂野欧美性猛交免费视频 | 三级做爰在线观看视频 | 黄色免费小视频 | 午夜久久一区 | 国内精品久久久久久久久久 | 日韩av影片在线观看 | 亚洲黄色一区二区 | av女优一区 | 97成人资源站 | 国产黄色一区 | 黄色大尺度视频 | 国产人人插 | 肥臀浪妇太爽了快点再快点 | 国产美女福利 | 国产69精品久久久久久 | 亚洲高清视频网站 | 亚洲精品在线中文字幕 | 国产精品99久久久久久动医院 | 在线麻豆av |