Solution 洛谷 P6021 洪水

2022-06-04 11:39:11 字數 1943 閱讀 3958

link.

給定一棵 \(n\) 個點的帶點權樹,刪除 \(u\) 點的代價是該點點權 \(a_u\)。\(m\) 次操作:

\(n,m\le2\times10^5\)。

不考慮修改,列出 dp:

\[f(u)=\begina_u&u\text\\\min\&\text\end

\]單獨拿出實兒子 \(s_u\):

\[g(u)=\begin+\infty&u\text\\\sum_f(v)&\text\end\\\rightarrow f(u)=\min\

\]定義矩乘的 \(+\) 為加法,\(\times\) 為取 \(\min\),有:

\[\beginf(u)\\0\end=\beging(u)&a_u\\+\infty&0\end\beginf(s_u)\\0\end

\]用 lct / 樹剖維護。若使用 lct,詢問 \(u\) 子樹時,應 \(\operatorname\)原樹上 \(u\) 的父親,再 \(\operatorname\)

\(u\),就能保證當前 \(u\) 的實鏈全部在子樹內,輸出 \(u\) 維護的矩乘答案即可。

還有一點,雖然 dp 是自下而上的,但把矩乘展開卻是由 \(u\) 向實兒子走的。注意乘法順序。

詢問的時候 \(\operatorname\) 成了 lct 上的父親調哭了 qwq。

#include #define calc( x ) ( min_ ( s[x][0][0], s[x][0][1] ) )

typedef long long ll;

const int maxn = 2e5;

const ll inf = 1e14;

int n, m, ecnt, a[maxn + 5], head[maxn + 5];

int srcfa[maxn + 5], fa[maxn + 5], ch[maxn + 5][2];

inline ll min_ ( const ll a, const ll b )

inline char fgc ()

inline int rint ()

inline void wint ( ll x )

struct edge graph[maxn * 2 + 5];

struct matrix {}

inline ll* operator ( const int key )

inline matrix operator * ( matrix& t )

}} return ret;

}} g[maxn + 5], s[maxn + 5];

inline void link ( const int s, const int t ) ;

head[s] = ecnt;

}inline bool nroot ( const int x )

inline void pushup ( const int x )

inline void rotate ( const int x )

inline void splay ( const int x )

} pushup ( x );

}inline void access ( int x )

}inline ll initdp ( const int u, const int fath )

} g[u][0][0] = sum, g[u][0][1] = a[u], g[u][1][1] = 0;

return s[u] = g[u], min_ ( sum, a[u] );

}int main ()

initdp ( 1, 0 );

m = rint ();

for ( int x, t, op; m --; ) else

} return 0;

}

Solution洛谷1525關押罪犯

題面描述 s城現有兩座監獄,一共關押著n名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...