update ucpc2026

This commit is contained in:
2026-07-11 09:38:32 +09:00
parent 7176febe54
commit 0b8c2864ae
20 changed files with 329 additions and 163 deletions
+37 -19
View File
@@ -11,6 +11,10 @@
\usepackage{subfiles}
\usepackage{amsmath}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\usepackage{etoolbox}
\AtBeginEnvironment{align*}{%
@@ -38,7 +42,7 @@
\usepackage{multicol}
\setlength\columnseprule{0.5pt}
\teamnote{POSTECH}{ConSpirito}{}{ICPC Seoul Regional}
\teamnote{UCPC 2025 Final}{아팀명모하지}{아팀명모하지}{}
\ShowUsage
\ShowComplexity
@@ -72,6 +76,7 @@
\item calculating error bound on a real number usage?
\end{itemize}
\subsection{checked...}
\begin{itemize}
@@ -378,11 +383,16 @@ When you don't have any ideas, please bruteforce it.
\end{tcolorbox}
\Algorithm{POROGOD}{}{}{bash}{source/poro.cpp}
\Algorithm{POROGOD}{}{}{bash}{source/poro.sh}
\pagebreak
% \pagebreak
% \Algorithm{astilate}{}{}{cpp}{source/Fundemental.cpp}
\Algorithm{cy4n1de}{}{}{cpp}{source/cy4n1de.cpp}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Math}
\subsection{Tips for Inequality with Rational Number}
Let $A$, $B$, $x$, $n$ be integer, and operator `/' means floor division(quotient).
@@ -393,9 +403,7 @@ Let $A$, $B$, $x$, $n$ be integer, and operator `/' means floor division(quotien
Ax > B & \Leftrightarrow x \geqslant B/A+1 \\ \\
x < n & \Leftrightarrow x+1\leqslant n
\end{align*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Math}
\subfile{source/Math/math}
\subsection{Prime Number}
@@ -485,7 +493,7 @@ $$\sum_{x=0}^{N-1} \left\lfloor \frac{Ax+B}{C} \right\rfloor $$}
\Algorithm{NTT - Number Theoretic Transform}
{helloworld}
{}
{}
{cpp}
{source/Math/NTT.cpp}
@@ -760,8 +768,8 @@ D_{min}(p) &= \min_i|A_i-B_{p_i}| && \text{ maximize } D_{min} &&& \Rightarrow p
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{DP}
\Algorithm{LIS}
{}{}{cpp}{source/DP/LIS.cpp}
% \Algorithm{LIS}
% {}{}{cpp}{source/DP/LIS.cpp}
\subsection{DP Optimization}
@@ -871,6 +879,17 @@ D_{min}(p) &= \min_i|A_i-B_{p_i}| && \text{ maximize } D_{min} &&& \Rightarrow p
{cpp}
{source/String/AhoCorasick.cpp}
% % gemini flash : lyndon word, lyndon decomp를 설명해
% \Algorithm{Duval's}
% {A string is called simple (or a Lyndon word), if it is strictly smaller than any of its own nontrivial suffixes. Examples of simple strings are a,b,ab,aab,abb,abcd,abaca, b, ab, aab, abb, abcd, abac.
% It can be shown that a string is simple, if and only if it is strictly smaller than all its nontrivial cyclic shifts. As a corollary, it can be observed that simple words are never periodic (it is not a repetition of some words for 22 or more times).
% The Lyndon decomposition of string ss is a factorization $s = w_1w_2 \ldots w_k$, where all strings $w_i$ are simple, and are in non-increasing order $w_1 \geq w_2 \geq \ldots \geq w_k$.
% Alternatively, the Lyndon decomposition of string s can be represented as $s = w_1^{p_1} w_2^{p_2} \ldots w_k^{p_k}$. Here, $p_i$ are positive integers, and $w^p_i$ denotes the string w repeated for $p_i$ times. All strings $w_i$ are simple, and are in decreasing order $w_1 > w_2 > \ldots > w_k$. The only difference is that the group of identical factors is grouped as a chunk such as $w^p_i$.
% }
% {}
% {cpp}
% {source/String/Duval.cpp}
\Algorithm{Eertree}
{}
{}
@@ -981,15 +1000,16 @@ If we want the result of matching, use:}
{cpp}
{source/DS/PBDS.cpp}
% \Algorithm{rope}{}{}{cpp}{}
\Algorithm{Union and Find - Queue Undoing}
{}
{$\mathcal O(\log^2N)$}
{cpp}
{source/DS/UF_QUndo.cpp}
\Algorithm{Fenwick Tree}{}{}{cpp}
\Algorithm{Fenwick Tree}
{}
{}
{cpp}
{source/DS/Fenwick.cpp}
\Algorithm{Segment Tree}
@@ -1004,11 +1024,11 @@ If we want the result of matching, use:}
% {cpp}
% {source/DS/SegmentTree.cpp}
\Algorithm{Segment Tree Beats}
{}
{$\mathcal O(\log N)$ on updating and querying}
{cpp}
{source/DS/STBeats.cpp}
% \Algorithm{Segment Tree Beats}
% {}
% {$\mathcal O(\log N)$ on updating and querying}
% {cpp}
% {source/DS/STBeats.cpp}
\Algorithm{Li-Chao Tree}
{}
@@ -1023,7 +1043,7 @@ If we want the result of matching, use:}
{source/DS/SplayTree.cpp}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Numerical Analysis}
% \section{Numerical Analysis}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1043,8 +1063,6 @@ If we want the result of matching, use:}
{cpp}
{source/Misc/NegDiv.cpp}
\Algorithm{Fast Input}
{Fast Input with fread. Do not use with scanf, cin, or other input function. Use \texttt{forr(i, n) read(arr[i]);} instead of \texttt{forr(i, n) scanf("\%d", arr+i);}. Use \texttt{read(s+1)} instead of \texttt{scanf("\%s", s+1);}.}
{}