P1137 旅行計畫

2022-04-30 06:48:09 字數 2074 閱讀 8632

小明要去乙個國家旅遊。這個國家有n個城市,編號為1~n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。

所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多。

現在,你只知道每一條道路所連線的兩個城市的相對位置關係,但並不知道所有城市具體的位置。現在對於所有的i,都需要你為小明制定一條路線,並求出以城市i為終點最多能夠遊覽多少個城市。

輸入格式:

輸入的第1行為兩個正整數n, m。

接下來m行,每行兩個正整數x, y,表示了有一條連線城市x與城市y的道路,保證了城市x在城市y西面。

輸出格式:

輸出包括n行,第i行包含乙個正整數,表示以第i個城市為終點最多能遊覽多少個城市。

輸入樣例#1:

5 6

1 21 3

2 32 4

3 42 5

輸出樣例#1:

123

43

均選擇從城市1出發可以得到以上答案。

對於20%的資料,n ≤ 100;

對於60%的資料,n ≤ 1000;

對於100%的資料,n ≤ 100000,m ≤ 200000。

(wa)

1 #include2 #include3 #include4 #include5

6using

namespace

std;

7const

int n=1001;8

9struct

node;

12node e[n];

13int

head[n];

14int

ans[n];

15int

rd[n];

16int now=1

;17 queueq;

18int

t;19

intn,m;

20int

answer;

21int flag=1;22

23void add(int u,int

v)24

3031

void

topsort()

3241}42

while

(q.empty())

4356}57

}58}59

60void

redayac()

6166}67

68int

main()

6976

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

7783

topsort();

84redayac();

85 }

犯了個小錯誤,上**39行不能break;why,吾吧;

呈上ac**

#include#include

#include

#include

using

namespace

std;

const

int n=2000001

;struct

node;

node e[n];

inthead[n];

intans[n];

intrd[n];

int now=1

;queue

q;intt;

intn,m;

intanswer;

int flag=1

;void add(int u,int

v)void

topsort()

}while(!q.empty())}}

}void

redayac()

}int

main()

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

topsort();

redayac();

}

P1137 旅行計畫

題目描述 小明要去乙個國家旅遊。這個國家有n個城市,編號為1 n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多...

P1137 旅行計畫

小明要去乙個國家旅遊。這個國家有n個城市,編號為1 n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多。現在,你...

P1137 旅行計畫

p1137 旅行計畫 題目描述 小明要去乙個國家旅遊。這個國家有n個城市,編號為1至n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下...