From 2c133b76f193478bb85d41a76ae78695cc067452 Mon Sep 17 00:00:00 2001
From: Paul Jungeblut <s_jungeb@i08pc79.atis-stud.uni-karlsruhe.de>
Date: Wed, 26 Nov 2014 11:45:23 +0100
Subject: levenshtein

---
 graph/graph.tex | 1 +
 1 file changed, 1 insertion(+)

(limited to 'graph/graph.tex')

diff --git a/graph/graph.tex b/graph/graph.tex
index 98d5ffd..4c49663 100644
--- a/graph/graph.tex
+++ b/graph/graph.tex
@@ -20,6 +20,7 @@ Kürzestes Pfade in Graphen mit negativen Kanten. Erkennt negative Zyklen.
 \subsubsection{\textsc{Floyd-Warshall}-Algorithmus}
 Alle kürzesten Pfade im Graphen.
 \lstinputlisting{graph/floydWarshall.cpp}
+\textsc{Floyd-Warshall} findet auch negative Kreise. Es existiert genau dann ein negativer Kreis, wenn \lstinline{dist[i][i] < 0} ist.
 
 \subsection{Strongly Connected Components (\textsc{Tarjans}-Algorithmus)}
 \lstinputlisting{graph/scc.cpp}
-- 
cgit v1.2.3


From 9cf344075f66a3bd2e404b08b72812356bb3f565 Mon Sep 17 00:00:00 2001
From: Paul Jungeblut <s_jungeb@i08pc71.atis-stud.uni-karlsruhe.de>
Date: Wed, 26 Nov 2014 18:34:33 +0100
Subject: Feinschliff

---
 graph/graph.tex         |   2 +-
 java/java.tex           |   4 ++--
 sonstiges/sonstiges.tex |  15 +++++++++++++++
 string/kmp.cpp          |   5 -----
 tcr.pdf                 | Bin 209720 -> 212443 bytes
 5 files changed, 18 insertions(+), 8 deletions(-)

(limited to 'graph/graph.tex')

diff --git a/graph/graph.tex b/graph/graph.tex
index 827892b..d4bf9d5 100644
--- a/graph/graph.tex
+++ b/graph/graph.tex
@@ -67,7 +67,7 @@ Finde die maximale Anzahl Pfade von $s$ nach $t$, die keinen Knoten teilen.
 	\item Der maximale Fluss entspricht der unterschiedlichen Pfade ohne gemeinsame Knoten.
 \end{enumerate}
 
-\subsection{Maximal Cardinatlity Bipartite Mathcing}
+\subsection{Maximal Cardinatlity Bipartite Matching}\label{kuhn}
 \lstinputlisting{graph/maxCarBiMatch.cpp}
 
 \subsection{TSP}
diff --git a/java/java.tex b/java/java.tex
index e8e132c..d9c3a75 100644
--- a/java/java.tex
+++ b/java/java.tex
@@ -28,7 +28,7 @@ Hier ein kleiner überblick über die Methoden der Klasse BigInteger:
 //Returns this +,*,/,- val
 BigInteger add(BigInteger val), multiply(BigInteger val), divide(BigInteger val), substract(BigInteger val)
 
-//Returns this\(^e\)
+//Returns this^e
 BigInteger pow(BigInteger e)
 
 //Bit-Operations
@@ -37,7 +37,7 @@ BigInteger and(BigInteger val), or(BigInteger val), xor(BigInteger val), not(),
 //Returns the greatest common divisor of abs(this) and abs(val)
 BigInteger gcd(BigInteger val)
 
-//Returns this mod m, this\(^{-1}\) mod m, this\(^e\) mod m
+//Returns this mod m, this^-1 mod m, this^e mod m
 BigInteger mod(BigInteger m), modInverse(BigInteger m), modPow(BigInteger e, BigInteger m)
 
 //Returns the next number that is greater than this and that is probably a prime.
diff --git a/sonstiges/sonstiges.tex b/sonstiges/sonstiges.tex
index 255af6a..694aaf7 100644
--- a/sonstiges/sonstiges.tex
+++ b/sonstiges/sonstiges.tex
@@ -32,3 +32,18 @@ $n$ Personen im Kreis, jeder $k$-te wird erschossen.
 	\lstinputlisting{sonstiges/josephusK.cpp}
 \end{description}
 \textbf{Beachte bei der Ausgabe, dass die Personen im ersten Fall von $1, \ldots, n$ nummeriert sind, im zweiten Fall von $0, \ldots, n-1$!}
+
+\subsection{Gemischtes}
+\begin{itemize}[itemsep=5mm]
+	\item \emph{\textsc{Johnsons} Reweighting Algorithmus:} Füge neue Quelle \lstinline{S} hinzu, mit Kanten mit Gewicht 0 zu allen Knoten. Nutze \textsc{Bellmann-Ford} zum Betsimmen der Entfernungen \lstinline{d[i]} von \lstinline{S} zu allen anderen Knoten. Stoppe, wenn es negative Zyklen gibt. Sonst ändere die gewichte von allen Kanten \lstinline{(u,v)} im ursprünglichen Graphen zu \lstinline{d[u]+w[u,v]-d[v]}. Dann sind alle Kantengewichte nichtnegativ, \textsc{Dijkstra} kann angewendet werden.
+	\item Für ein System von Differenzbeschränkungen: Ändere alle Bedingungen in die Form $a-b \leq c$. Für jede Bedingung füge eine Kante \lstinline{(b,a)} mit Gweicht \lstinline{c} ein. Füge Quelle \lstinline{s} hinzu, mit Kanten zu allen Knoten mit Gewicht 0. Nutze \textsc{Bellmann-Ford}, um die kürzesten Pfade von \lstinline{s} aus zu finden. \lstinline{d[v]} ist mögliche Lösung für \lstinline{v}.
+	\item Min-Weight-Vertex-Cover im bipartiten Graph: Partitioniere in \lstinline{A, B} und füge Kanten \lstinline{s -> A} mit Gewicht \lstinline{w(A)} und Kanten  \lstinline{B -> t} mit Gewicht \lstinline{w(B)} hinzu. Füge Kanten mit Kapazität $\infty$ von \lstinline{A} nach \lstinline{B} hinzu, wo im originalen Graphen Kanten waren. Max-Flow ist die Lösung.\newline
+	Im Residualgraphen:
+	\begin{itemize}
+		\item Das Vertex-Cover sind die Knoten inzident zu den Brücken. \emph{oder}
+		\item Die Knoten in \lstinline{A}, die \emph{nicht} von \lstinline{s} erreichber sind und die Knoten in \lstinline{B}, die von \lstinline{erreichber} sind.
+	\end{itemize}
+	\item Allgemeiner Graph: Das Komplement eines Vertex-Cover ist ein Independent Set. $\Rightarrow$ Max Weight Independent Set ist Komplement von Min Weight Vertex Cover.
+	\item Bipartiter Graph: Min Cover (kleinste Menge Knoten, die alle Kanten berühren) = Max Matching.
+	\item Bipartites Matching mit Gewichten auf linken Knoten. Minimiere Matchinggewicht. Lösung: Sortiere Knoten links aufsteigend nach Gewicht, danach nutze normlen Algorithmus (\textsc{Kuhn}, Seite \pageref{kuhn})
+\end{itemize}
diff --git a/string/kmp.cpp b/string/kmp.cpp
index f7c3630..6844975 100644
--- a/string/kmp.cpp
+++ b/string/kmp.cpp
@@ -1,8 +1,3 @@
-#include <iostream>
-#include <vector>
-
-using namespace std;
-
 //Preprocessing Substring sub for KMP-Search
 vector<int> kmp_preprocessing(string& sub) {
 	vector<int> b(sub.size() + 1);
diff --git a/tcr.pdf b/tcr.pdf
index 168904b..f8b3d91 100644
Binary files a/tcr.pdf and b/tcr.pdf differ
-- 
cgit v1.2.3

