51NOD 1815調查任務

2021-10-04 16:56:05 字數 868 閱讀 7260

顯然答案就是路徑上的次大值。因為點可以一直走,所以可以縮成dag。

然後在上面dp。

要注意,因為是路徑上面的兩點,所以不能來自同一路徑。

比如:1->2,2->4,1->3,3->4, 4不能同時繼承2,3的答案。

ac**:

#pragma gcc optimize("-ofast","-funroll-all-loops")

#include

//#define int long long

using namespace std;

const

int n=

4e5+10;

int n,m,q,st,a[n]

,dfn[n]

,low[n]

,scc[n]

,vis[n]

,cnt,co,mx1[n]

,mx2[n]

,deg[n]

,mx3[n]

,mx4[n]

;vector<

int> g[n]

,v[n]

; stack<

int> s;

void

tarjan

(int x)

if(dfn[x]

==low[x]

)while

(u!=x);}

}void

dfs(

int x)

}void

top()}

}signed

main()

printf

("%d "

,mx2[scc[x]])

;}return0;

}

51NOD 任務執行順序

有n個任務需要執行,第i個任務計算時佔r i 個空間,而後會釋放一部分,最後儲存計算結果需要佔據o i 個空間 o i r i 例如 執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和儲存所需的空間,問執行所有任務最少需要多少空間。思路 這是乙個貪心演算法,依據執行空間 儲存空間的大小排序即...

任務執行順序(51nod

有n個任務需要執行,第i個任務計算時佔r i 個空間,而後會釋放一部分,最後儲存計算結果需要佔據o i 個空間 o i r i 例如 執行需要5個空間,最後儲存需要2個空間。給出n個任務執行和儲存所需的空間,問執行所有任務最少需要多少空間。輸入 第1行 1個數n,表示任務的數量。2 n 100000...

貪心 STL 51nod 做任務三

按左點排序 能幹就幹 幹不了加人 但這次資料非常大 手動模擬超時 需要用到優先佇列 或 mutilset 佇列能解決的set 都可以解決 set支援性更佳 所以個人更傾向於set include include include using namespace std const int maxn 1...