2019暑假集訓 旅行計畫

2022-05-08 20:09:06 字數 1282 閱讀 4037

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

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

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

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

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

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

輸入 #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。

題目**洛谷p1137

挺水一道題

給定一張有向圖,求以i號節點為終點最長路的長度

因為給定的x一定在y的西面,所以是原圖是dag

拓撲排序+dp即可

#include#include

#include

#include

using

namespace

std;

int n,m,head[100050],num,dp[100050],ind[100050],book[100050],top[100050

],idx;

struct

edge

e[200050

<<1

];queue

q;void add(int u,int

v)int

main()

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

if(!ind[i])

while(!q.empty())}}

//拓撲排序

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

}//按照拓撲序dp

for(int i=1;i<=n;i++)printf("

%d\n

",dp[i]);

return0;

}

2019暑假集訓

7.8 題解a.類似於保護古蹟的亂搞 b.可持久化線段樹維護塊與塊的連邊 暴力匹配 c.burnside引理好題 補不來.jpg ctsc2014 隨機數 這裡 感覺是一道比較好的題 常見套路又忘了系列 n個點無向連通圖計數 考慮1號點所在聯通塊大小 減掉 然後得到乙個柿子可以分治fft 7.9題解...

2019暑假集訓心得

暑假終於要過去了在學校訓練了乙個月。感覺進步不是很明顯,但是總的來說還是有很多收穫的。我上大學的最愛的東西有兩件,乙個是女朋友,乙個是acm。我知道我第一次談戀愛不會太長久,所以我很珍惜和她在一起的時間,為她也主動放棄了很多東西,每一天我都很努力的愛她,如今走到這步田地,我也沒啥好後悔的。現在既然只...

總結 2019暑假集訓

啊,我最喜歡的暑假集訓終究還是結束了。感覺集訓收穫的還是挺大的,不管是在知識方面還是心態方面,感覺現在考試心態穩了很多,不管是考前考時考後,都可以很快的調整了。大概就是教練所說的考試心態調整的加速。最近感覺非常好,雖然水題還是老爆零,考得也不怎麼樣,不過我的確是飛快的在進步了,只要我在進步就好了,我...