From 5e9bf5c35422380f5ab63f231893ffac2806a6c1 Mon Sep 17 00:00:00 2001
From: fer22f <fer22f@gmail.com>
Date: Sat, 30 Nov 2024 11:50:54 -0300
Subject: [PATCH] Arruma algumas coisas

---
 caderno.pdf                       | Bin 429812 -> 429602 bytes
 caderno/caderno.tex               |   4 +--
 fontes/circle-line-intersection.h |  22 +++++++++++++
 fontes/dinic.h                    |  11 +++----
 fontes/interval-set.h             |  52 +++++++++++++++---------------
 fontes/kadane.h                   |   2 +-
 fontes/kruskal.h                  |   2 +-
 fontes/lazy-segment-tree.h        |   1 +
 fontes/mo-algorithm.h             |   2 +-
 fontes/sos.h                      |   2 +-
 10 files changed, 60 insertions(+), 38 deletions(-)
 create mode 100644 fontes/circle-line-intersection.h

diff --git a/caderno.pdf b/caderno.pdf
index 7714cc621aef8714e5683bd461e4a4018e148806..04e48e5e28662cb1bee84cd621640096a5c8cdbd 100644
GIT binary patch
delta 19874
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
CZ1vFq

delta 20004
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

diff --git a/caderno/caderno.tex b/caderno/caderno.tex
index 029cdd1..bf2079f 100644
--- a/caderno/caderno.tex
+++ b/caderno/caderno.tex
@@ -229,7 +229,7 @@ uma das partes do corte mínimo.
 \subsection{Fatorial e desarranjos}
 \begin{align*}
   n! &\approxeq \sqrt{2\pi n} \left(\frac{n}{e}\right)^n \\
-  !n &= n!\sum_{i=0}^{n} \frac{(-1)^i)}{i!} \text{ para } n \ge 0 \\
+  !n &= n!\sum_{i=0}^{n} \frac{(-1)^i}{i!} \text{ para } n \ge 0 \\
   !n &= \left\lfloor \frac{n! + 1}{e} \right\rfloor \text{ para } n \ge 1 \\
   !n &= n(!(n-1)) + (-1)^n \text{ para } n > 0
 \end{align*}
@@ -270,7 +270,7 @@ Então:
 \begin{itemize}
   \item $\mathcal{L}(\mathbb{Z}^2)$ escala $\mathbb{Z}^2$ em $\sqrt{2}$ e rotaciona em $\frac{\pi}{4}$ em sentido horário.
   \item Para algum $p \in \mathbb{Z}^2$, $\mathcal{L}(\{ q : M(q, p) \le d \})$ (círculo) forma um quadrado alinhado
-    nos eixos em $\mathcal{L}(\mathbb{Z})^2$, com canto inferior-esquerda em $\mathcal{L}(p) - (d, d)$ e canto superior-direito em $\mathcal{L}(p) + (d, d)$.
+    nos eixos em $\mathcal{L}(\mathbb{Z})^2$, com canto inferior-esquerdo em $\mathcal{L}(p) - (d, d)$ e canto superior-direito em $\mathcal{L}(p) + (d, d)$.
   \item $M(p, q) = C(\mathcal{L}(p), \mathcal{L}(q))$, e $C(p, q) = M(\mathcal{L}^{-1}(p), \mathcal{L}^{-1}(q))$.
 \end{itemize}
 
diff --git a/fontes/circle-line-intersection.h b/fontes/circle-line-intersection.h
new file mode 100644
index 0000000..ea107f8
--- /dev/null
+++ b/fontes/circle-line-intersection.h
@@ -0,0 +1,22 @@
+using line = tuple<ll, ll, ll>;
+
+vector<pt> circle_line_intersection(double r, line abc) {
+  auto [a, b, c] = abc; vector<pt> ans;
+  double a2b2 = (a*a+b*b), x0 = -a*c/a2b2, y0 = -b*c/a2b2;
+  if (c*c > r*r*a2b2+EPS) {
+    /* zero points */
+  }
+  else if (abs(c*c - r*r*a2b2) < EPS)
+    ans.emplace_back(x0, y0);
+  else {
+    double d = r*r - c*c/a2b2, m = sqrt(d/a2b2);
+    ans.emplace_back(x0 + b*m, y0 - a*m);
+    ans.emplace_back(x0 - b*m, y0 + a*m);
+  }
+  return ans;
+}
+
+line get_line(pt p, pt q) {
+  double a = q.py - p.py, b = p.px - q.px;
+  return make_tuple(a, b, a*p.px + b*p.py);
+}
diff --git a/fontes/dinic.h b/fontes/dinic.h
index 5b01160..85c99c6 100644
--- a/fontes/dinic.h
+++ b/fontes/dinic.h
@@ -1,13 +1,13 @@
 vector<vector<int>> res (N);
 vector<int> level (N), ptr (N);
-struct edge { int u, v; ll cap, flow = 0; };
+struct edge { int u, v; ll cap; };
 vector<edge> edges; queue<int> q;
 
 bool minimum_path(int s, int t) {
   while (!q.empty()) {
     int u = q.front(); q.pop();
     for (int i : res[u]) {
-      if (edges[i].cap - edges[i].flow < 1) { continue; }
+      if (edges[i].cap < 1) { continue; }
       if (level[edges[i].v] != -1) { continue; }
       level[edges[i].v] = level[u] + 1;
       q.push(edges[i].v);
@@ -22,11 +22,10 @@ ll dfs(int u, int t, ll pushed) {
   for (int& cid = ptr[u]; cid < res[u].size(); cid++) {
     int i = res[u][cid], v = edges[i].v;
     if (level[u] + 1 != level[v]) { continue; }
-    if (edges[i].cap - edges[i].flow < 1) { continue; }
-    ll tr = dfs(v, t,
-        min(pushed, edges[i].cap - edges[i].flow));
+    if (edges[i].cap < 1) { continue; }
+    ll tr = dfs(v, t, min(pushed, edges[i].cap));
     if (tr == 0) { continue; }
-    edges[i].flow += tr; edges[i^1].flow -= tr;
+    edges[i].cap -= tr; edges[i^1].cap += tr;
     return tr;
   }
   return 0;
diff --git a/fontes/interval-set.h b/fontes/interval-set.h
index 8db08b7..b6824a3 100644
--- a/fontes/interval-set.h
+++ b/fontes/interval-set.h
@@ -1,34 +1,34 @@
 struct itvl {
+  itvl(int _a = 0) : a(_a) {}
+  itvl(int _a, int _b, int _c) : a(_a), b(_b), c(_c) { }
   int a, b, c;
-  itvl(int _a, int _b, int _c)
-    : a(_a), b(_b), c(_c) {}
-  bool operator<(const itvl& o) const {
-    return ii(b, a) < ii(o.b, o.a); }
-  bool operator<(const int& o) const { return b < o; }
+  bool operator<(const itvl &b) const { return a < b.a; }
 };
 
-set<itvl, less<>> si;
+set<itvl> si;
 
-void ins_in(itvl in) { //<@\compl{\lg n}@>
-  auto it = si.lower_bound(in);
-  int a = in.a, b = in.b, c = in.c;
-  if (si.size() > 0 && it != begin(si)
-      && prev(it)->b+1 == a && prev(it)->c == c) {
-    auto prv = prev(it); int prva = prv->a;
-    si.erase(prv); a = prva;
-  }
-  if (it != end(si) && c == it->c && b+1 == it->a) {
-    int nxtb = it->b; si.erase(it); b = nxtb;
-  }
-  si.insert(itvl(a, b, c));
+void erase_sub(int m) {
+  auto it = si.lower_bound(m);
+  if (it == begin(si)) { return; } it--;
+  if (it->b <= m) { return; }
+  auto cur = *it; si.erase(it);
+  si.insert(itvl(cur.a, m, cur.c));
+  si.insert(itvl(m, cur.b, cur.c));
 }
 
-void upd_color(int a, int b, int c) { //<@\compl{\lg n}@>
-  auto it = si.lower_bound(b);
-  if (it != end(si)) {
-    itvl ori = *it; si.erase(it);
-    if (ori.a < a) { ins_in(itvl(ori.a, a-1, v)); }
-    if (ori.b > b) { ins_in(itvl(b+1, ori.b, v)); }
-  }
-  ins_in(itvl(a, b, c));
+void erase(int a, int b) {
+  if (a >= b) return;
+  erase_sub(a); erase_sub(b);
+  si.erase(si.lower_bound(a), si.lower_bound(b));
+}
+
+void upd_color_inclusive(int a, int b, int c) {
+  erase(a, b+1); si.insert(itvl(a, b+1, c));
+}
+
+const itvl* get(int i) {
+  auto it = si.upper_bound(i);
+  if (it == begin(si)) { return NULL; } it--;
+  if (!(it->a <= i && i < it->b)) { return NULL; }
+  return &*it;
 }
diff --git a/fontes/kadane.h b/fontes/kadane.h
index eb07582..5fe0af5 100644
--- a/fontes/kadane.h
+++ b/fontes/kadane.h
@@ -10,4 +10,4 @@ struct kadane {
     a.ans = max({ l.ans, r.ans, l.suf + r.pre });
     return a;
   }
-}
+};
diff --git a/fontes/kruskal.h b/fontes/kruskal.h
index c0f2bdd..471b54a 100644
--- a/fontes/kruskal.h
+++ b/fontes/kruskal.h
@@ -9,7 +9,7 @@ int kruskal(int n) { //<@\compl{m\alpha(n)}@>
   for (auto [u, v, w] : edges) {
     if (components == 1) { break; }
     if (ds_find(u) != ds_find(v)) {
-      ds_union(u, v);
+      ds_unite(u, v);
       components--;
       sum += w;
     }
diff --git a/fontes/lazy-segment-tree.h b/fontes/lazy-segment-tree.h
index 64115a7..503fd2b 100644
--- a/fontes/lazy-segment-tree.h
+++ b/fontes/lazy-segment-tree.h
@@ -7,6 +7,7 @@ void build(vector<int>& src, int n) { //<@\compl{n}@>
     t[n+i] = src[i];
   for (int ti = n-1; ti > 0; ti--)
     t[ti] = OP(t[2*ti], t[2*ti+1]);
+  fill(begin(delta), begin(delta)+2*n, dlta());
 }
 
 ll apply(int ti, dlta d, int sz) {
diff --git a/fontes/mo-algorithm.h b/fontes/mo-algorithm.h
index 89e3ea6..6fc4c21 100644
--- a/fontes/mo-algorithm.h
+++ b/fontes/mo-algorithm.h
@@ -1,4 +1,4 @@
-vector<int> mo(vector<qry> qs) {
+vector<int> mo(vector<qry> qs) { //<@\compl{(N+Q)F\sqrt{N}}@>
   vector<int> ans (qs.size());
   sort(all(qs), [](qry a, qry b) {
     if (a.l/B != b.l/B) { return a.l < b.l; }
diff --git a/fontes/sos.h b/fontes/sos.h
index 01b3946..d672db5 100644
--- a/fontes/sos.h
+++ b/fontes/sos.h
@@ -3,6 +3,6 @@ vector<ll> sos_dp(vector<ll> f) {
   assert((1<<n) == f.size());
   for (int i = 0; i < n; i++)
   for (int mask = 0; mask < (1<<n); mask++)
-    if (mask>>i&1) f[mask] += f[mask^(1<<i)];
+    if (mask&(i<<1)) f[mask] += f[mask^(1<<i)];
   return f;
 }
-- 
GitLab