題意:
給定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有史以來最驚天動地的 ...