From 442921c7bd93e9e111845de6c22f66753b41e11a Mon Sep 17 00:00:00 2001
From: Paul Jungeblut <paul.jungeblut@gmail.com>
Date: Thu, 6 Oct 2016 00:17:59 +0200
Subject: Renamin sonstiges ot other.

---
 other/other.tex | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)
 create mode 100644 other/other.tex

(limited to 'other/other.tex')

diff --git a/other/other.tex b/other/other.tex
new file mode 100644
index 0000000..6bc4733
--- /dev/null
+++ b/other/other.tex
@@ -0,0 +1,89 @@
+\section{Sonstiges}
+
+\subsection{2-SAT}
+\begin{enumerate}
+	\item Bedingungen in 2-CNF formulieren.
+	\item Implikationsgraph bauen, $\left(a \vee b\right)$ wird zu $\neg a \Rightarrow b$ und $\neg b \Rightarrow a$.
+	\item Finde die starken Zusammenhangskomponenten.
+	\item Genau dann lösbar, wenn keine Variable mit ihrer Negation in einer SCC liegt.
+\end{enumerate}
+
+\subsection{Zeileneingabe}
+\lstinputlisting{other/split.cpp}
+
+\subsection{Bit Operations}
+\lstinputlisting{other/bitOps.cpp}
+
+\subsection{Josephus-Problem}
+$n$ Personen im Kreis, jeder $k$-te wird erschossen.
+\begin{description}
+	\item[Spezialfall $k=2$:] Betrachte Binärdarstellung von $n$.
+	Für $n = 1b_1b_2b_3..b_n$ ist $b_1b_2b_3..b_n1$ die Position des letzten Überlebenden.
+	(Rotiere $n$ um eine Stelle nach links)
+	\lstinputlisting{other/josephus2.cpp}
+	\item[Allgemein:] Sei $F(n,k)$ die Position des letzten Überlebenden.
+	Nummeriere die Personen mit $0, 1, \ldots, n-1$.
+	Nach Erschießen der $k$-ten Person, hat der Kreis noch Größe $n-1$ und die Position des Überlebenden ist jetzt $F(n-1,k)$.
+	Also: $F(n,k) = (F(n-1,k)+k)\%n$. Basisfall: $F(1,k) = 0$. 
+	\lstinputlisting{other/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 Vertex Cover (kleinste Menge Kanten, die alle Knoten 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})
+	\item \textbf{Tobi, cool down!}
+\end{itemize}
+
+\subsection{Sonstiges}
+\begin{lstlisting}
+// Alles-Header.
+#include <bits/stdc++.h>
+
+// Setzt das deutsche Tastaturlayout.
+setxkbmap de
+
+// Schnelle Ein-/Ausgabe mit cin/cout.
+ios::sync_with_stdio(false);
+
+// Set mit eigener Sortierfunktion. Typ muss nicht explizit angegeben werden.
+set<point2, decltype(comp)> set1(comp);
+
+// PI
+#define PI (2*acos(0))
+
+// STL-Debugging, Compiler flags.
+-D_GLIBCXX_DEBUG
+#define _GLIBCXX_DEBUG
+
+// 128-Bit Integer. Muss zum Einlesen/Ausgeben in einen int oder long long gecastet werden.
+__int128
+\end{lstlisting}
-- 
cgit v1.2.3

