小明要去乙個國家旅遊。這個國家有n個城市,編號為1至n,並且有m條道路連線著,小明準備從其中乙個城市出發,並只往東走到城市i停止。
所以他就需要選擇最先到達的城市,並制定一條路線以城市i為終點,使得線路上除了第乙個城市,每個城市都在路線前乙個城市東面,並且滿足這個前提下還希望遊覽的城市盡量多。
現在,你只知道每一條道路所連線的兩個城市的相對位置關係,但並不知道所有城市具體的位置。現在對於所有的i,都需要你為小明制定一條路線,並求出以城市ii為終點最多能夠遊覽多少個城市。
第1行為兩個正整數n,m。
接下來m行,每行兩個正整數x,y,表示了有一條連線城市x與城市y的道路,保證了城市x在城市y西面。
n行,第ii行包含乙個正整數,表示以第ii個城市為終點最多能遊覽多少個城市。
輸入 #1複製
5 61 21 3
2 32 4
3 42 5
輸出 #1複製
12343
均選擇從城市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暑假集訓
啊,我最喜歡的暑假集訓終究還是結束了。感覺集訓收穫的還是挺大的,不管是在知識方面還是心態方面,感覺現在考試心態穩了很多,不管是考前考時考後,都可以很快的調整了。大概就是教練所說的考試心態調整的加速。最近感覺非常好,雖然水題還是老爆零,考得也不怎麼樣,不過我的確是飛快的在進步了,只要我在進步就好了,我...