[BZOJ1726][Usaco2006 Nov]Roadblocks第二短路

1726: [Usaco2006 Nov]Roadblocks第二短路

Time Limit: 5 Sec??Memory Limit: 64 MB Submit: 1277??Solved: 607 [Submit][Status][Discuss]

Description

貝茜把家搬到了一個小農場,但她常常回到FJ的農場去拜訪她的朋友。貝茜很喜歡路邊的風景,不想那么快地結束她的旅途,于是她每次回農場,都會選擇第二短的路徑,而不象我們所習慣的那樣,選擇最短路。 貝茜所在的鄉村有R(1<=R<=100,000)條雙向道路,每條路都聯結了所有的N(1<=N<=5000)個農場中的某兩個。貝茜居住在農場1,她的朋友們居住在農場N(即貝茜每次旅行的目的地)。 貝茜選擇的第二短的路徑中,可以包含任何一條在最短路中出現的道路,并且,一條路可以重復走多次。當然咯,第二短路的長度必須嚴格大于最短路(可能有多條)的長度,但它的長度必須不大于所有除最短路外的路徑的長度。

Input

* 第1行: 兩個整數,N和R,用空格隔開

* 第2..R+1行: 每行包含三個用空格隔開的整數A、B和D,表示存在一條長度為 D(1 <= D <= 5000)的路連接農場A和農場B

Output

* 第1行: 輸出一個整數,即從農場1到農場N的第二短路的長度

Sample Input

4 4
1 2 100
2 4 200
2 3 250
3 4 100


Sample Output

450

輸出說明:

??? 最短路:1 -> 2 -> 4 (長度為100+200=300)
??? 第二短路:1 -> 2 -> 3 -> 4 (長度為100+250+100=450)
次短路模板題
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char buf[10000000], *ptr = buf - 1;
inline int readint(){int n = 0;char ch = *++ptr;while(ch < '0' || ch > '9') ch = *++ptr;while(ch <= '9' && ch >= '0'){n = (n << 1) + (n << 3) + ch - '0';ch = *++ptr;}return n;
}
const int maxn = 5000 + 10, maxm = 100000 + 10;
struct Edge{int to, val, next;Edge(){}Edge(int _t, int _v, int _n): to(_t), val(_v), next(_n){}
}e[maxm * 2]; 
int fir[maxn] = {0}, cnt = 0;
inline void ins(int u, int v, int w){e[++cnt] = Edge(v, w, fir[u]); fir[u] = cnt;e[++cnt] = Edge(u, w, fir[v]); fir[v] = cnt;
}struct Node{int dis, idx;Node(){}Node(int _d, int _i): dis(_d), idx(_i){}bool operator < (const Node &x) const {return dis > x.dis;}
}t;
priority_queue<Node> q;
int dis1[maxn], dis2[maxn];
void dijkstra(){memset(dis1, 0x3f, sizeof dis1);memset(dis2, 0x3f, sizeof dis2);dis1[1] = 0;q.push(Node(0, 1));int u, v, w;while(!q.empty()){t = q.top(); q.pop();u = t.idx;if(t.dis > dis2[u]) continue;for(int i = fir[u]; i; i = e[i].next){v = e[i].to;w = t.dis + e[i].val;if(dis1[v] > w){swap(dis1[v], w);q.push(Node(dis1[v], v));}if(dis1[v] < w && w < dis2[v]){dis2[v] = w;q.push(Node(dis2[v], v));}}}
}
int n, m;
int main(){fread(buf, sizeof(char), sizeof(buf), stdin); n = readint();m = readint();for(int u, v, w, i = 1; i <= m; i++){u = readint();v = readint();w = readint();ins(u, v, w);}dijkstra();printf("%d\n", dis2[n]);return 0;
}

?

轉載于:https://www.cnblogs.com/ruoruoruo/p/7486995.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371283.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371283.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371283.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 5.1.62_MySQL 5.5.62 安裝方法(標準配置版)

1.此安裝方法適用于絕大多數MySQL版本&#xff0c;首先在MySQL官網上下載好所需版本。2.(官網可能不太好找)在我的博客列表中有一篇是MySQL官網下載鏈接&#xff0c;直達下載界面&#xff0c;方便。3.下載。(安裝版 MSI Installer)4.下載安裝包然后雙擊開始安裝選擇同意協議并…

簡化Java內存分析

作為一名典型的Java開發人員&#xff0c;除了遵循關閉連接&#xff0c;流等典型的最佳實踐外&#xff0c;我從未監視過應用程序的內存使用情況。最近&#xff0c;我們在JBoss服務器中遇到了一些問題&#xff0c;不得不深入研究內存管理Java中最好的事情之一是&#xff0c;創建對…

nyoj 1129 Salvation 模擬

思路&#xff1a;每個坐標有四種狀態&#xff0c;每個點對應的每種狀態只能走一個方向&#xff0c;如果走到一個重復的狀態說明根本不能走到終點&#xff0c;否則繼續走即可。 坑點&#xff1a;有可能初始坐標四周都是墻壁&#xff0c;如果不判斷下可能會陷入是死循環。 貼上測…

詳解mysql數據庫的啟動與終止_詳解MySQL數據庫的啟動與終止(一)

由于MySQL服務器具有多種安裝分發&#xff0c;而且能夠運行在多種操作平臺之上&#xff0c;因此它的啟動與停止的方法也多種多樣。你可以根據實際情況使用其中的一種。在你安裝、升級或者維護系統時&#xff0c;你可能需要多次啟動和終止服務器&#xff0c;你需要了解啟動和終止…

easyui 插入中間行

function inserrow() {var index_dx 0;var index_lt 0;var rows $(#dg).datagrid(getRows)//獲取當前的數據行前期數據準備for (var i 0; i < rows.length; i) {if (rows[i][運營商] 電信) {index_dx i;dxptjss_dx parseInt(rows[i][短信平臺接收數]);} else {index_…

使用JNA的透明JFrame

在“ 使JFrame透明”中&#xff0c;我展示了一種使用AWTUtilities類使框架透明的方法。 但是使用該類會導致訪問限制編譯時錯誤&#xff0c;該文章中還顯示了Eclipse中的解析。 現在&#xff0c;這里是使用Java本機的版本。 我使用Java本機訪問&#xff08;JNA&#xff09;庫來…

Problem: Query on the tree(二分+劃分樹)

題目鏈接&#xff1a; Problem: Query on the tree Time limit: 1s Mem limit: 64 MB Problem DescriptionThere is a tree with n node, labeled from 1 to n, and the root of the tree is 1. For every node i, if its father is j, its value vivj*i%20161119, the…

day04_09 while循環03

練習題: 3.如何輸入一個如下的直角三角形,用戶指定輸出行數:(如果上下反轉,右如何實現?) ********** 以下是自己的思路,沒有按照上課老師的思路,反正經過不斷的測試改進得出的算法 num int(input("請輸入行數")) line 1 while line < num1:lie 1 while lie &l…

idal 創建springboot 項目_手把手的SpringBoot教程,SpringBoot創建web項目(四)

在實際的開發過程中&#xff0c;我們需要前端頁面向Java端提交請求&#xff0c;這些請求一般分為get方式和post方式&#xff0c;不管是哪一種方式&#xff0c;一般都會攜帶一些參數。這一節&#xff0c;我們來演示一下如何給Controller傳遞參數。代碼&#xff1a;RestControlle…

JavaOne 2012:Lambda之路

我最熱切期待的JavaOne 2012演講之一是Brian Goetz的“通往Lambda的道路”。 昨晚的技術主題演講中的Lambda味道僅增加了預期。 這是在希爾頓廣場A / B舉行的&#xff0c;距離我上次在金門大橋A / B / C參加的演講僅幾步之遙。 我原本希望打包相對較大的Plaza A / B&#xff08…

沉浸式go-cache源碼閱讀!

大家好&#xff0c;我是豆小匠。 這期來閱讀go-cache的源碼&#xff0c;了解本地緩存的實現方式&#xff0c;同時掌握一些閱讀源碼的技巧~ 1. 源碼獲取 git clone https://github.com/patrickmn/go-cache.git用Goland打開可以看到真正實現功能的也就兩個go文件&#xff0c;ca…

CoreAnimation 變換

CoreAnimation 變換 CoreAnimation 目錄 博客園MakeDown支持不佳,如有需要請進GitHub 本片博客主要內容: 仿射變換 - CGAffineTransform3D變換 - CATransform3D仿射變換 - CGAffineTransform CGAffineTransform 是用于二維空間的旋轉,縮放和平移的屬性.首先展示一個簡單的樣例,…

20170907wdVBA_GetCellsContentToExcel

WORD 加載項 代碼模板 Dim cmdBar As CommandBar, cmdBtn As CommandBarControl Const cmdBtnCap As String "批量提取操作步驟"Sub AutoExec()Call DelCmdBtnCall AddCmdBtnEnd Sub Sub AutoExit()Call DelCmdBtn End SubSub AddCmdBtn()Set cmdBar Application.C…

mysql 5.7 mirror_Centos7 Docker離線部署Mysql5.7

1 環境信息查看系統內核[rootlocalhost /]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)2 虛擬機拉取鏡像此處資源獲取在虛擬機中進行&#xff0c;完成后上傳到服務器安裝2.1 拉取mysql5.7鏡像[rootlocalhost /]# docker pull mysql:5.72.2 導出鏡像[rootloc…

Java中的簡單REST客戶端

如今&#xff0c;大多數用于與某些服務器通信的移動應用程序都使用REST服務。 這些服務也是與JavaScript或jQuery一起使用的常見做法。 現在&#xff0c;我知道在Java中為REST服務創建客戶端的2種方法&#xff0c;在本文中&#xff0c;我將嘗試演示這兩種方法&#xff0c;希望它…

3.20 下午

閱讀《藝術學概論》 戲劇沖突是戲劇的靈魂 沖突包括&#xff1a;人物性格的沖突、行為的沖突、 思想感情的沖突乃至心理狀態的沖突等等 轉載于:https://www.cnblogs.com/bgd140206110/p/6590005.html

華為root工具_華為Mate9解鎖后無法ROOT 需要手動刷入Recovery怎么辦【解決方法】...

很多朋友手機到手之后&#xff0c;都希望能夠ROOT使用更多的系統功能。近日有網友向小編詢問&#xff0c;為何華為Mate9解鎖后無法ROOT&#xff0c;明明已經通過官方的解鎖教程解鎖的&#xff0c;但是之后使用“大師”等第三方刷機工具&#xff0c;無法ROOT。其實ROOT的關鍵就在…

JAX-WS入門

JAX-WS代表XML Web Services的Java API。 它是一種Java編程語言API&#xff0c;用于創建Web服務和使用XML進行通信的客戶端。 這篇文章是JAX-WS的快速入門。 先決條件 GlassFish與Eclipse集成在一起 。 創建JAX-WS Web服務 1.在Eclipse中創建一個名為“ com.eviac.blog.jax…

canvas 圖片反色

代碼實例&#xff1a; <!DOCTYPE HTML> <html> <head><meta charset"utf-8"><title>圖片反色</title><style type"text/css">body{ background:black;}#c1{ background:white;}</style><script type&q…

python中的文件父路徑怎么表達_python中的文件父路徑怎么表達_如何在Python中訪問父目錄...

所以我有一個朋友給我的Python腳本&#xff0c;但是我沒有Python的經驗。代碼如下&#xff1a;from os import path, chdir, listdir, mkdir, getcwdfrom sys import argvfrom zipfile import ZipFilefrom time import sleep#Defines what extensions to look for within the f…