poj 3160 強連通 最長路

2021-08-07 03:10:41 字數 718 閱讀 5898

題意:

給定n個點 m條有向邊的圖 ,每個點的點權。 問:

遍歷一遍圖能得到的最大點權(對於經過的點,可以選擇是否獲得該點點權,但每個點只能被獲得一次)。起點可以任意。

先將整個圖縮點,然後建立乙個超級源點,再跑一邊最長路就好了。(最長路最好用spfa,佇列優化dij超時,我試是這樣)

#include#include#include#include#includeusing namespace std;

#define ll long long

#define me(a,b) memset(a,b,sizeof(a))

struct node

e[16000];

struct node1

e2[16000];

struct node2

else if(!scnt[u])

}if(low[x]==dfn[x])

}}void spfa()

//printf("%d...\n",val1[1]);

queuep;

p.push(0);

while(!p.empty())

{int f=p.front();

p.pop();

book[f]=0;

for(int i=head2[f];i!=-1;i=e2[i].next)

{int u=e2[i].u;

if(dis[u]

poj 3160 (強連通縮點 簡單dp)

flymouse從武漢大學acm集訓隊退役後,做起了志願者,在聖誕節來臨時,flymouse要打扮成聖誕老人給集訓隊員發放禮物。集訓隊員住在校園宿舍的不同寢室,為了節省體力,flymouse決定從某乙個寢室出發,沿著有向路乙個接乙個的訪問寢室並順便發放禮物,直至能到達的所有寢室走遍為止。對於每乙個寢...

POJ 3592(強連通縮點,拓撲最長路)

題意 n m矩陣,表示傳送門,矩陣後面給出其到達的點,障礙點,不可到達,數字表示該點的寶藏數,每個點可以往下或者往右走,獲得寶藏後該點寶藏數變為0,問最多能獲得多少寶藏。思路 建圖 強連通縮點 拓撲dp。難點 構圖 點不可做為起點也不可以作為終點。總共n m個點,標號別和其他量弄混。強連通縮點 只對...

強連通縮點 最長路 搶掠計畫

搶掠計畫 siruseri城中的道路都是單向的。不同的道路由路口連線。按照法律的規定,在每個路口都設立了乙個 siruseri 銀行的 atm 取款機。令人奇怪的是,siruseri 的酒吧也都設在路口,雖然並不是每個路口都設有酒吧。banditji 計畫實施 siruseri有史以來最驚天動地的 ...