多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 【BZOJ3889】【Usaco2015 Jan】Cow Routing 雙鍵值最短路

【BZOJ3889】【Usaco2015 Jan】Cow Routing 雙鍵值最短路

來源:程序員人生   發(fā)布時(shí)間:2015-03-17 09:11:49 閱讀次數(shù):2637次

廣告:

#include <stdio.h> int main() { puts("轉(zhuǎn)載請(qǐng)注明出處[vmurder]謝謝"); puts("網(wǎng)址:blog.csdn.net/vmurder/article/details/44064091"); }

題意:

從樣例講起。
第1行 s,t,m表示:出發(fā)點(diǎn),終點(diǎn),m條航線。

然后m組,每組第1行l(wèi)en,n表示這條航線的代價(jià),
這類似于公交車,只要用了就花這些錢,但是用多少都這些錢。
注意是單向邊。

舉例:
2333 4
3 2 1 4
就是3->2、3->1、3->4、2->1、2->4、1->4都花2333元。

這個(gè)花消是第1鍵值。
第2鍵值是經(jīng)過幾站。

比如3->2->1->4花費(fèi)2333
而如果有其它航線使得3->5->4花費(fèi)1000+1333==2333的話,
那末由于它經(jīng)過了2站,所以更優(yōu)。

然后求雙鍵值最短路。
輸出這倆鍵值。

無解輸出“⑴ ⑴”。

題解:

裸最短路。

代碼:

#include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 1010 #define INF 0x3f3f3f3f3f3f3f3fll using namespace std; long long map[N][N]; int dist[N][N]; int id[N],cnt; int s,t,m; int n,a[N],c; long long dis[N]; int di[N]; bool in[N]; queue<int>q; void spfa() { memset(dis,0x3f,sizeof dis); memset(di,0x3f,sizeof di); int i,u; q.push(s),in[s]=1; di[s]=dis[s]=0; while(!q.empty()) { u=q.front(),q.pop(); for(i=1;i<=cnt;i++)if(map[u][i]<INF) { if(dis[i]==dis[u]+map[u][i]) { di[i]=min(di[i],di[u]+dist[u][i]); if(!in[i])in[i]=1,q.push(i); } else if(dis[i]>dis[u]+map[u][i]) { dis[i]=dis[u]+map[u][i]; di[i]=di[u]+dist[u][i]; if(!in[i])in[i]=1,q.push(i); } } } return ; } int main() { memset(map,0x3f,sizeof map); memset(dist,0x3f,sizeof dist); int i,j,k; scanf("%d%d%d",&s,&t,&m); if(s==t) { puts("0 1"); return 0; } s=id[s]=cnt=1; t=id[t]=cnt=2; while(m--) { scanf("%d%d",&c,&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(!id[a[i]])id[a[i]]=++cnt; a[i]=id[a[i]]; } for(i=1;i<=n;i++)for(j=i+1;j<=n;j++) { if(map[a[i]][a[j]]==c) if(dist[a[i]][a[j]]>j-i) dist[a[i]][a[j]]=j-i; if(map[a[i]][a[j]]>c) { map[a[i]][a[j]]=c; dist[a[i]][a[j]]=j-i; } } } for(i=1;i<=cnt;i++)map[i][i]=0,dist[i][i]=0; spfa(); if(dis[t]==INF)puts("⑴ ⑴"); else printf("%lld %d ",dis[t],di[t]); return 0; }
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产欧美日韩综合二区三区 | 亚洲综合国产 | 日本欧美一区二区三区不卡视频 | 欧美三级欧美一级 | 色综合第一页 | 免费欧美日韩 | 亚洲黄色在线视频 | 亚洲国产片在线观看 | 欧美黑人xxxxww | 18欧美同性视频 | 亚洲成人一区二区 | 欧美一区二区三区在线观看不卡 | 精品一区二区三区免费观看 | 亚洲精品一二三区-久久 | 特级黄色淫片 | 中文字幕在线精品视频入口一区 | 日韩欧美一中文字幕不卡 | 成人亚洲精品一区 | 国产精品国产三级国产爱网 | 男女啪啪片 | 国产片一级aaa毛片视频 | 2015日韩永久免费视频播放 | 香蕉福利视频 | 精品一区二区三区在线观看 | 色综合久久综合欧美综合图片 | 国产基zz视频日本在线观看 | 欧美在线精品永久免费播放 | 视频二区好吊色永久视频 | 久久国产精品一国产精品 | 久久精品国产400部免费看 | 日韩一级欧美一级一级国产 | 两性午夜欧美高清做性 | 黄色一级片生活片 | 国产精品第二页 | 2018av在线| 日本一区二区精品88 | 男人都懂的www网站免费观看 | 亚洲欧美乱综合图片区小说区 | 亚洲欧洲国产精品久久 | 香蕉乱码成人久久天堂爱免费 | 欧美日韩亚洲一区二区三区 |