AHOI 2015 小島 最短路

2022-05-03 19:39:11 字數 1149 閱讀 8128

西伯利亞北部的寒地,坐落著由 n 個小島組成的島嶼群,我們把這些小島依次編號為 1 到 n 。

起初,島嶼之間沒有任何的航線。後來隨著交通的發展,逐漸出現了一些連通兩座小島的航線。

例如增加一條在 u 號小島與 v 號小島之間的航線,這條航線的用時為 e。 那麼沿著這條航線,u 號小島上的人可以前往 v 號小島,同樣的 v 號小島上的人也可以前往 u 號小島,其中沿著這一條航線花費的時間為 e。

同時,隨著旅遊業的發展,越來越多的人前來遊玩。那麼兩個小島之間的最短路徑是多少便成為了飽受關注的話題。

這題是一題類似 floyd 的題,

我們每次加入一條邊時,

就拿這條邊來修正其他最短路

拿 u 到 v,修正每乙個點i和j

把 i 到 j 拆成 i 到 u 和 v 到 j (或是 i 到 v 和 u 到 j,看哪個小)

也就是說

dis[i][j]=min(dis[i][j],dis[u][v]+min(dis[i][u]+dis[v][j],dis[i][v]+dis[u][j]))

#include

#include

using

namespace

std;

const

int inf = 9999999;

int n,m,dis[101][101];

inline

void

pushedge

(int u,int v,int w)

}int

main

() }

return

0;}

#include

#include

using

namespace

std;

const

int inf = 9999999;

int n,m,dis[101][101];

inline

void

pushedge

(int u,int v,int w)

}int

main

() }

return

0;}

bzoj4032 HEOI2015 最短不公共子串

字尾自動機 序列自動機 序列自動機這東西好像很高階的樣子。其實很簡單的啦。詳細可以看一下我的部落格序列自動機 對字串a構建字尾自動機 str a 和序列自動機 seq a 類似地,對字串b也構建字尾自動機 str b 和序列自動機 seq b 然後對於4個詢問我們分別拿出1個自動機,如第乙個詢問拿出...

HEOI2015 最短不公共子串

字尾自動機 序列自動機 分別建出a,b兩個串的字尾自動機和序列自動機,然後因為字尾自動機和序列自動機都是dag,所以在上面dp一下就可以啦 dp i j 表示在第乙個狀態的自動機上匹配到 i 號節點,在第二個狀態的自動機上匹配到 j 號節點時 還需要新增dp i j 個字元才能使兩串失配 滿足條件 ...

HEOI2015 最短不公共子串

在虐各種最長公共子串 子串行的題虐的不耐煩了之後,你決定反其道而行之。下面給出一些定義 下面,給兩個小寫字母串 a,ba,b,請你計算 a 的乙個最短的子串,它不是 b 的子串。a 的乙個最短的子串,它不是 b 的子串行。a 的乙個最短的子串行,它不是 b 的子串。a 的乙個最短的子串行,它不是 b...