Vijos P1391 想越獄的小杉

2021-08-14 23:46:55 字數 2608 閱讀 3813

背景

這次小杉來到了經典美劇《越獄》的場景裡……

他被抓起來了(-.-幹嘛幻想這麼鬱悶的場景……)。

小杉身為新一代的scofield,在挖了半個月之後終於挖通牢房裡的地道。

在地道裡,無數的管道路線困惑了他。

(若對情節有任何疑問,請**原劇)

描述小杉看了看自己的紋身,明白了整個管道網是由n個小房間和若干小房間之間的單向的管道組成的。

小房間編號為不超過n的正整數。

對於某個管道,小杉只能在人品不超過一定程度時通過。

小杉一開始在房間1,現在小杉想知道,每個小房間他最多能夠以人品多少的狀態到達。

注意,小杉的人品在出發以後是不會改變的。

格式輸入格式

每組測試資料的

第一行有乙個正整數n(1<=n<=2000)。

接下來若干行描述管道,每行三個正整數a,b,r(1<=a,b<=n),表示a房間有一條到達b房間的管道,且小杉的人品不超過r時可以通過(注意從b房間不可由此管道到達a房間,即管道是單向的)

整個輸入資料以一行0 0 0結束

特別地,對於30%的資料,有n<=100

輸出格式

對每組測試資料輸出n-1行,分別表示對於2到n號的小房間,小杉最多能夠以人品多少的狀態到達。

樣例1樣例輸入1

4

1 2 30

1 3 20

2 3 25

3 4 30

2 4 20

0 0 0

樣例輸出1

30

2525

限制

每個測試點1s

提示對於樣例資料:

小杉最多能夠在人品為30的情況下到達小房間2(1->2)

小杉最多能夠在人品為25的情況下到達小房間3(1->2->3)

小杉最多能夠在人品為25的情況下到達小房間4(1->2->3->4)

方法一:

取巧的方法,成功地把資料被氵過去了

二分查詢答案+bfs判斷是否能到終點,時間複雜度n*m*log(maxn)(正解還沒有看,先氵一波)

方法二:

(應該是正解吧)

先按邊的大小排序,然後不斷地把大邊往圖里建,然後每次從這條大邊做一次 sp

fas pf

a修改答案

顯然,這裡的時間複雜度遠小於 n∗

m n∗m

(反正我不會算,就瞎寫乙個吧)

方法一的ac情況:

方法二的ac情況:

氵題的**

#include

#include

using namespace std;

int n,tot,maxn;

int lnk[2005],q[2005],ans[2005];

bool vis[2005];

struct edge

e[4000005];

int readln()

void add(int

x,int

y,int v)

int max(int

x,int

y)bool bfs(int limit,int goal)}}

return false;

}int main()

for (int i=2;i<=n;i++)

}for (int i=2;i<=n;i++) printf("%d\n",ans[i]);

return

0;}

正解

#include

#include

#define maxn 2005

using namespace std;

int n,tot,cnt;

int lnk[maxn],q[maxn],ans[maxn],a[maxn*maxn],b[maxn*maxn],c[maxn*maxn];

struct edge

e[maxn*maxn];

int readln()

void add(int

x,int

y,int v)

int min(int

x,int

y)bool spfa(int

x) }

}return false;

}void qsort(int l,int r)

} while (i<=j);

if (iif (lint main()

qsort(1,tot);

ans[1]=0x7fffffff;

for (int i=1;i<=tot;i++)

for (int i=2;i<=n;i++) printf("%d\n",ans[i]);

return

0;}

想越獄的小衫

故事背景 這次小杉來到了經典美劇 越獄 的場景裡 他被抓起來了 幹嘛幻想這麼鬱悶的場景 小杉身為新一代的scofield,在挖了半個月之後終於挖通牢房裡的地道。在地道裡,無數的管道路線困惑了他。若對情節有任何疑問,請 原劇 問題描述 小杉看了看自己的紋身,明白了整個管道網是由n個小房間和若干小房間之...

8 17 想越獄的小杉 1535

背景 background 這次小杉來到了經典美劇 越獄 的場景裡 他被抓起來了 幹嘛幻想這麼鬱悶的場景 小杉身為新一代的scofield,在挖了半個月之後終於挖通牢房裡的地道。在地道裡,無數的管道路線困惑了他。若對情節有任何疑問,請 原劇 描述description 小杉看了看自己的紋身,明白了整...

spfa SSL 1535 想越獄的小杉

description 小杉看了看自己的紋身,明白了整個管道網是由n個小房間和若干小房間之間的單向的管道組成的。小房間編號為不超過n的正整數。每個管道都有乙個人品限制值,小杉只能在人品不超過該限制值時通過。小杉一開始在房間1,現在小杉想知道,每個小房間他最多能夠以人品多少的狀態到達。注意,小杉的人品...