洛谷P3387縮點裸題

2021-08-20 20:47:54 字數 570 閱讀 9459

題意不再贅述

有向圖跑完tarjan縮點之後,就是一張有向無環的dag,那麼求一條點權最大的路徑就可以在拓撲圖上跑最長路徑,然後在每個點出棧的時候,更新答案,答案就有了2333

**

//by acermo
#include#include#include#include#include#include#include#includeusing namespace std;

const int m=300050;

int n,m,ti,ind=0;

int dfn[m],low[m],fa[m],vis[m];

int c[m],cf[m],in[m],dis[m];

stacks;

vectorv[m];

vectorg[m];

void tarjan(int x)

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

if (!dfn[i]) tarjan(i);

built();top();

return 0;

}

縮點 洛谷P3387

給定乙個n個點m條邊有向圖,每個點有乙個權值,求一條路徑,使路徑經過的點權值之和最大。你只需要求出這個權值和。允許多次經過一條邊或者乙個點,但是,重複經過的點,權值只計算一次。第一行,n,m。第二行,n個整數,依次代表點權。第三至m 2行,每行兩個整數u,v,表示u v有一條有向邊。共一行,最大的點...

模板 縮點 洛谷p3387

縮點 dp 給定乙個n個點m條邊有向圖,每個點有乙個權值,求一條路徑,使路徑經過的點權值之和最大。你只需要求出這個權值和。允許多次經過一條邊或者乙個點,但是,重複經過的點,權值只計算一次。輸入格式 第一行,n,m 第二行,n個整數,依次代表點權 第三至m 2行,每行兩個整數u,v,表示u v有一條有...

洛谷P3387 模板 縮點

kma縮點之後很明顯是個dag,跑一遍toposort順便dp 方程 ans v max ans u w v ans v ans是到這個連通塊的最大點權和,w是這個連通塊的點權 注意縮點之後兩個連通塊之間可能會有很多邊,從連通塊內不同的點發出,正反分別只能連一次,否則toposort會涼 inclu...