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