From c30de75ac12e6503a220c321353c3f78b118c474 Mon Sep 17 00:00:00 2001 From: mzuenni Date: Tue, 19 Aug 2025 14:19:08 +0200 Subject: improve lct? --- content/datastructures/LCT.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'content/datastructures') diff --git a/content/datastructures/LCT.cpp b/content/datastructures/LCT.cpp index c1dd278..e88c8d3 100644 --- a/content/datastructures/LCT.cpp +++ b/content/datastructures/LCT.cpp @@ -53,8 +53,7 @@ struct LCT { if (right) right->revert ^= 1; } nodeValue = joinValueDelta(nodeValue, delta); - subTreeValue = joinValueDelta(subTreeValue, - _update(delta, size)); + subTreeValue = getSubtreeValue(); if (left) left->delta = joinDeltas(left->delta, delta); if (right) right->delta = joinDeltas(right->delta, delta); delta = updateDefault; @@ -68,8 +67,8 @@ struct LCT { subTreeValue = joinValueDelta(nodeValue, delta); size = 1; if (left) { - subTreeValue = _query(subTreeValue, - left->getSubtreeValue()); + subTreeValue = _query(left->getSubtreeValue(), + subTreeValue); size += left->size; } if (right) { -- cgit v1.2.3 From 1de6b74fab25d95e2802c97b4435f74266d4477d Mon Sep 17 00:00:00 2001 From: mzuenni Date: Mon, 22 Sep 2025 17:27:12 +0200 Subject: small changes --- content/datastructures/unionFind.cpp | 2 +- content/graph/graph.tex | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'content/datastructures') diff --git a/content/datastructures/unionFind.cpp b/content/datastructures/unionFind.cpp index dd5a569..1ee5178 100644 --- a/content/datastructures/unionFind.cpp +++ b/content/datastructures/unionFind.cpp @@ -21,6 +21,6 @@ void unionSets(int a, int b) { // Diese Funktion aufrufen. if (findSet(a) != findSet(b)) linkSets(findSet(a), findSet(b)); } -int size(int a) { +int size(int a) { // optional return -unions[findSet(a)]; } diff --git a/content/graph/graph.tex b/content/graph/graph.tex index 5335967..7389ce6 100644 --- a/content/graph/graph.tex +++ b/content/graph/graph.tex @@ -106,7 +106,7 @@ \subsubsection{\textsc{Floyd-Warshall}-Algorithmus} \method{floydWarshall}{kürzeste Pfade oder negative Kreise finden}{\abs{V}^3} \begin{itemize} - \item \code{dist[i][i] = 0, dist[i][j] = edge\{j, j\}.weight} oder \code{INF} + \item \code{dist[i][i] = 0, dist[i][j] = edge\{i, j\}.weight} oder \code{INF} \item \code{i} liegt auf einem negativen Kreis $\Leftrightarrow$ \code{dist[i][i] < 0}. \end{itemize} \sourcecode{graph/floydWarshall.cpp} @@ -128,7 +128,7 @@ Sei $a_{ij}$ die Adjazenzmatrix von $G$ \textcolor{gray}{(mit $a_{ii} = 1$)}, da \begin{algorithm}{Dynamic Connectivity} \begin{methods} \method{Constructor}{erzeugt Baum ($n$ Knoten, $m$ updates)}{n+m} - \method{addEdge}{fügt Kannte ein,\code{id}=delete Zeitpunkt}{\log(n)} + \method{addEdge}{fügt Kante ein,\code{id}=delete Zeitpunkt}{\log(n)} \method{eraseEdge}{entfernt Kante \code{id}}{\log(n)} \end{methods} \sourcecode{graph/connect.cpp} -- cgit v1.2.3