\documentclass[aspectratio=169,hyperref={pdfencoding=auto,psdextra}]{beamer} \usepackage[utf8]{inputenc} \usepackage{CJKutf8} \usepackage{ulem} \usepackage{graphicx} \usepackage{fancyvrb} \usepackage{amsmath} \usepackage{multicol} \usetheme{Malmoe} \usecolortheme{default} \begin{CJK*}{UTF8}{gbsn} \title{「初中数学都不会」} \subtitle{——Computational Geometrics} \author{Chris Xiong} \date{2017-08-18} \begin{document} \frame{\titlepage} \begin{frame} \frametitle{「初中数学都不会」} \framesubtitle{Outline} \begin{itemize} \item Basics \begin{itemize} \item Vectors \item Distances \item Area \item Intersections \item Transformations \end{itemize} \item Convex hull \item Extra fun \item Templates \item 殴打宇宙智障 \end{itemize} \end{frame} \begin{frame} \frametitle{Basics} \framesubtitle{Vectors} \begin{itemize} \item Computational Gemoetrics in ICPC=\\ \hspace{1cm}40\% Junior high school maths+\\ \hspace{1cm}30\% Senior high school maths+\\ \hspace{1cm}20\% Brainstorming+\\ \hspace{1cm}10\% College maths \item $\mathbf{u}$, $\mathbf{v}$, $\vec{u}$, $\vec{v}$ \item $\vec{u}+\vec{v}$,$\vec{u}-\vec{v}$,$s\vec{u}$,$\vec{u}\cdot\vec{v}$,$\vec{u}\times\vec{v}$ \end{itemize} \end{frame} \begin{frame} \frametitle{Basics} \framesubtitle{Distances} \begin{itemize} \item point 2 point \item point 2 line \pause \item polygon 2 polygon??? \end{itemize} \end{frame} \begin{frame} \frametitle{Basics} \framesubtitle{Area} \begin{itemize} \item Circle??? \item Triangle? \begin{itemize} \item \sout{$ah/2$} \item Heron's formula \item Cross product \end{itemize} \item Polygon??? \begin{itemize} \item Slicing \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Basics} \framesubtitle{Intersections} \begin{itemize} \item point \& line \item point \& segment \item line \& line \item line \& segment \item segment \& segment \item circle \& line \item circle \& circle \pause \item \sout{convex} polygon \& point \pause \begin{itemize} \item \sout{randomizing} (polyhedron) \item ray casting \item winding number \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Basics} \framesubtitle{Transformations} \begin{itemize} \item Scaling \item Rotation \item ${\displaystyle {\begin{bmatrix}s_x&0\\0&s_y\end{bmatrix}}}$ \item ${\displaystyle {{\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \end{bmatrix}}}}$ \end{itemize} \end{frame} \begin{frame} \frametitle{Convex hull} \framesubtitle{WTF???} \begin{itemize} \item Smallest convex polygon (set) that contains a set of points. \end{itemize} \end{frame} \begin{frame} \frametitle{Convex hull} \framesubtitle{Algorithms} \begin{itemize} \item Brute force: gift wrapping \item Graham scan \end{itemize} \end{frame} \begin{frame} \frametitle{Convex hull} \framesubtitle{Gift wrapping} \begin{itemize} \item The left most point must be in the resulting set \item Starting from that point, select the next point such that all points are \textbf{to the right} of the newly formed line. \item Time complexity: $O(nh)$ \end{itemize} \end{frame} \begin{frame} \frametitle{Convex hull} \framesubtitle{Graham scan} \begin{itemize} \item Find an extreme point and sort the remaining point according to polar angle. \item Start with a stack with two items, the extreme point and the first point in the sorted list. \item ($P_0$ denotes the top element of the stack, $P_1$ denotes the element under $P_0$) For each point left in the list ($T$), pop the stack until $\overrightarrow{P_1P_0}$ and $\overrightarrow{P_0T}$ forms \textbf{a left turn}. Then push $T$ onto the stack. \item Time complexity: $O(n log n)$ (with sorting) \end{itemize} \end{frame} \begin{frame} \frametitle{Convex hull} \framesubtitle{Example: NEERC 08 A} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Example: PetrSU SC 04 C} Arc-arc intersection \includegraphics[scale=0.5]{c1.png} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Example: PetrSU SC 04 C} \includegraphics[scale=0.36]{c2.png} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Example: MultiUniversity Traning 20170815 H} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Example: Asia GuangzhouRC 14 H} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Example: "Angry birds"} One of the few problems of computational geometrics in ICPC that involves college maths. \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{CG. Combined with other algorithms} \end{frame} \begin{frame} \frametitle{Extra fun} \framesubtitle{Rotating calipers} Solves: \begin{itemize} \item Max/min width of convex polygon \item Max/min distance between two convex polygons \item Antipodal points/Farthest pairs \item Union/intersection of convex polygons \item Min area/perimeter obb \item etc. \end{itemize} \end{frame} \begin{frame} \frametitle{Templates} \framesubtitle{Critical for Computational Geometrics (maybe)} \begin{itemize} \item Basic operations \item Basic intersections \item Circle-line intersection \item Circle-triangle intersection \item Circle-circle intersection \item 3D vector operations \item Half-plane intersection \item Cloest/Farthest Pair \item etc. \end{itemize} \end{frame} \begin{frame} \frametitle{殴打宇宙智障} \framesubtitle{光辉事迹+1} \begin{itemize} \item 建完图后把图清空然后跑网络流\pause \item 熟悉你的模板\pause \item 多校睡觉\pause \item 队伍组成 \item 代码手?\pause \item 违反中央八项规定\pause \item 口技 \end{itemize} \end{frame} \begin{frame} \frametitle{殴打宇宙智障} \framesubtitle{后事} \begin{itemize} \item 21日最后一次讲课 \item 8月31日计科退宿舍 \item 如有不同以宇宙智障为准 \end{itemize} \end{frame} \begin{frame} \frametitle{殴打宇宙智障} \framesubtitle{没来得及讲的东西} \begin{itemize} \item 概率(解方程/dp)、高斯消元 \item 网络流 \item 好像没什么了? \item Good luck to ya. \end{itemize} \end{frame} \end{CJK*} \end{document}