From a3738f580ac978d1a73323761955831197c094cc Mon Sep 17 00:00:00 2001 From: NaimSS Date: Thu, 16 May 2024 21:20:34 +0200 Subject: [PATCH 01/19] initial version of manhattan mst --- src/geometry/manhattan-distance.md | 105 +++++++++++++++++++++++++++++ test/manhattan_mst.cpp | 71 +++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 src/geometry/manhattan-distance.md create mode 100644 test/manhattan_mst.cpp diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md new file mode 100644 index 000000000..f0c5eed8f --- /dev/null +++ b/src/geometry/manhattan-distance.md @@ -0,0 +1,105 @@ +--- +tags: + - Original +--- + +# Manhattan Distance + +## Definition +Consider we have some points on a plane, and define a distance from point $p$ to $q$ as being the sum of the difference between their $x$ and $y$ coordinates: + +$d(p,q) = |p.x - q.x| + |p.y - q.y|$ + +This is informally know as the [Manhattan distance, or taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry), because we can think of the points as being intersections in a well designed city, like manhattan, where you can only move on the streets, as shown in the image below: + +This images show some of the smallest paths from one black point to the other, all of them with distance $12$. + +There are some interseting tricks and algorithms that can be done with this distance, and we will show some of them here. + +## Farthest pair of points in Manhattan Distance + +Given $n$ points $P$, we want to find the pair of points $p,q$ that are farther apart, that is, maximize $d(p, q) = |p.x - q.x| + |p.y - q.y|$. + +Let's think first in one dimension, so $y=0$. The main observation is that we can bruteforce if $|p.x - q.x|$ is equal to $p.x - q.x$ or $-p.x + q.x$, because if we "miss the sign" of the absolute value, we will get only a smaller value, so it can't affect the answer. More formally, we have that: + +$|p.x - q.x| = max(p.x - q.x, -p.x + q.x)$ + +So for example, we can try to have $p$ such that $p.x$ has the plus sign, and then $q$ must have the negative sign. This way we want to find: +$max_{p, q \in P}(p.x + (-q.x)) = max_{p \in P}(p.x) + max_{q \in P}( - q.x )$. + +Notice that we can extend this idea further for 2 (or more!) dimensions. For $d$ dimensions, we must bruteforce $2^d$ possible values of the signs. For example, if we are in $2$ dimensions and bruteforce that $p$ has both the plus signs we want to find: + +$max_{p, q \in P} (p.x + (-q.x)) + (p.y + (-q.y)) = max_{p \in P}(p.x + p.y) + max_{q \in P}(-q.x - q.y)$. + +As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that maximize the expression. + +## Rotating the points and Chebyshev distance + + + +## Manhattan Minimum Spanning Tree + +The Manhattan MST problem consists of, given some points in the plane, find the edges that connect all the points and have a minimum total sum of weights. The weight of an edge that connects to points is their Manhattan distance. For simplicity, we assume that all points have different locations. +Here we show a way of finding the MST in $O(n\logn)$ by finding for each point its nearest neighbor in each octant, as represented by the image below. This will give us $O(n)$ candidate edges, which will guarantee that they contain the MST. The final step is then using some standard MST, for example, [Kruskal algorithm using disjoint set union](https://cp-algorithms.com/graph/mst_kruskal_with_dsu.html). + +The algorithm show here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. + +First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point s and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The images below give some intuition on why this is true. + +Therefore, the main question is how to find the nearest neighbor in each octant for every single of the $n$ points. + +## Nearest Neighbor in each Octant in $O(n\logn)$ + +For simplicity we focus on the north-east octant. All other directions can be found with the same algorithm by rotating the input. + +We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet. + +When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-east octant. As all the next points will not have a smaller value of $x + y$ because of the process order, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to this set. + +The next question is how to efficiently find which points $s$ have $p$ in the north-east octant. That is, which points $s$ satisfy: + +- $x_s \leq x_p$ +- $x_p - y_p < x_s - y_s$ + +Because no points in the active set are in the R_1 of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. + +This means that if we keep the active set ordered by $x$ the candidates $s$ are consecutively placed. We can then find the largest $x_s \leq x_p$ and process the points in decreasing order of $x$ until the second condition $x_p - y_p < x_s - y_s$ breaks (we can actually allow that $x_p - y_p = x_s - y_s$ and that deals with the case of points with equal coordinates). Notice that because we remove from the set right after processing, this will have an amortized complexity of $O(n \log(n))$. + Now that we have the nearest point in the north-east direction, we rotate the points and repeat. It is possible to show that actually we also find this way the nearest point in the south-west direction, so we can repeat only 4 times, instead of 8. + +In summary we: +- Sort the points by $x + y$ in non-decreasing order; +- For every point, we iterate over the active set starting with the point with the largest $x$ such that $x \leq x_p$, and we break the loop if $x_p - y_p \geq x_s - y_s$. For every valid point $s$ we add the edge $(s,p, dist(s,p))$ in our list; +- We add the point $p$ to the active set; +- Rotate the points and repeat until we iterate over all the octants. +- Apply Kruskal algorithm in the list of edges to get the MST. + +Below you can find a implementation, based on the one from [KACTL](https://github.com/kth-competitive-programming/kactl/blob/main/content/geometry/ManhattanMST.h). + +```{.cpp file=manhattan_mst.cpp} +vector > manhattan_mst_edges(vector ps){ + vector ids(ps.size()); + iota(ids.begin(), ids.end(), 0); + vector > edges; + for(int rot = 0; rot < 4; rot++){ // for every rotation + sort(ids.begin(), ids.end(), [&](int i,int j){ + return (ps[i].x + ps[i].y) < (ps[j].x + ps[j].y); + }); + map > active; // (xs, id) + for(auto i : ids){ + for(auto it = active.lower_bound(ps[i].x); it != active.end(); + active.erase(it++)){ + int j = it->second; + if(ps[i].x - ps[i].y > ps[j].x - ps[j].y)break; + assert(ps[i].x >= ps[j].x && ps[i].y >= ps[j].y); + edges.push_back({(ps[i].x - ps[j].x) + (ps[i].y - ps[j].y), i, j}); + } + active[ps[i].x] = i; + } + for(auto &p : ps){ // rotate + if(rot&1)p.x *= -1; + else swap(p.x, p.y); + } + } + return edges; +} +``` diff --git a/test/manhattan_mst.cpp b/test/manhattan_mst.cpp new file mode 100644 index 000000000..c408f0833 --- /dev/null +++ b/test/manhattan_mst.cpp @@ -0,0 +1,71 @@ +#include +using namespace std; +#include "manhattan_mst.h" + +struct point { + int x, y; +}; + +struct DSU { + int n; + vector p, ps; + DSU(int _n){ + n = _n; + p = ps = vector(n+1, 1); + for(int i=1;i<=n;i++)p[i] = i; + } + int f(int x){return p[x]=(p[x]==x?x:f(p[x]));} + bool join(int a,int b){ + a=f(a),b=f(b); + if(a==b)return false; + if(ps[a] > ps[b])swap(a,b); + ps[b] += ps[a]; + p[a] = b; + return true; + } +}; + +long long mst_cost(vector > e,int n){ + sort(e.begin(), e.end()); + DSU dsu(n); + long long c=0; + for(auto &[w, i, j] : e){ + if(dsu.join(i, j))c += w; + } + return c; +} + +vector > brute(vector ps){ + vector > e; + for(int i=0;i get_random_points(int n,int maxC){ + vector ps; + for(int i=0;i max_cs = {5, 1000, 100000, 100000000}; + vector ns = {5, 100, 500}; + for(int maxC : max_cs)for(int n : ns){ + auto ps = get_random_points(n, maxC); + auto e1 = brute(ps); + auto e2 = manhattan_mst_edges(ps); + assert(mst_cost(e1, n) == mst_cost(e2, n)); + } + auto time_begin = clock(); + auto ps = get_random_points(200000, 1000000); + auto e = manhattan_mst_edges(ps); + cerr << setprecision(5) << fixed; + cerr << (double)(clock() - time_begin)/CLOCKS_PER_SEC << endl; + assert((double)(clock() - time_begin)/CLOCKS_PER_SEC < 2); +} From de625bfecc5f2fc266711e84f3cf4d135a832bea Mon Sep 17 00:00:00 2001 From: NaimSS Date: Sun, 9 Jun 2024 15:33:53 +0200 Subject: [PATCH 02/19] fix typos --- src/geometry/manhattan-distance.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index f0c5eed8f..7df382aee 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -39,22 +39,22 @@ As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that ## Manhattan Minimum Spanning Tree -The Manhattan MST problem consists of, given some points in the plane, find the edges that connect all the points and have a minimum total sum of weights. The weight of an edge that connects to points is their Manhattan distance. For simplicity, we assume that all points have different locations. -Here we show a way of finding the MST in $O(n\logn)$ by finding for each point its nearest neighbor in each octant, as represented by the image below. This will give us $O(n)$ candidate edges, which will guarantee that they contain the MST. The final step is then using some standard MST, for example, [Kruskal algorithm using disjoint set union](https://cp-algorithms.com/graph/mst_kruskal_with_dsu.html). +The Manhattan MST problem consists of, given some points in the plane, find the edges that connect all the points and have a minimum total sum of weights. The weight of an edge that connects two points is their Manhattan distance. For simplicity, we assume that all points have different locations. +Here we show a way of finding the MST in $O(n \log{n})$ by finding for each point its nearest neighbor in each octant, as represented by the image below. This will give us $O(n)$ candidate edges, which will guarantee that they contain the MST. The final step is then using some standard MST, for example, [Kruskal algorithm using disjoint set union](https://cp-algorithms.com/graph/mst_kruskal_with_dsu.html). -The algorithm show here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. +The algorithm show here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. They both have the same complexity, but the one presented here is easier to implement and has a lower constant factor. -First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point s and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The images below give some intuition on why this is true. +First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point $s$ and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove this, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The images below give some intuition on why this is true. Therefore, the main question is how to find the nearest neighbor in each octant for every single of the $n$ points. -## Nearest Neighbor in each Octant in $O(n\logn)$ +## Nearest Neighbor in each Octant in $O(n\log{n})$ For simplicity we focus on the north-east octant. All other directions can be found with the same algorithm by rotating the input. -We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet. +We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". -When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-east octant. As all the next points will not have a smaller value of $x + y$ because of the process order, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to this set. +When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. The next question is how to efficiently find which points $s$ have $p$ in the north-east octant. That is, which points $s$ satisfy: From 50b011ab0a6e6974a4f848bdbf90042b8f6443bd Mon Sep 17 00:00:00 2001 From: Gabriel Ribeiro Paiva Date: Mon, 10 Jun 2024 20:37:10 -0300 Subject: [PATCH 03/19] fix: fix format error in manhattan distance article --- src/geometry/manhattan-distance.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 7df382aee..eae318800 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -67,6 +67,7 @@ This means that if we keep the active set ordered by $x$ the candidates $s$ are Now that we have the nearest point in the north-east direction, we rotate the points and repeat. It is possible to show that actually we also find this way the nearest point in the south-west direction, so we can repeat only 4 times, instead of 8. In summary we: + - Sort the points by $x + y$ in non-decreasing order; - For every point, we iterate over the active set starting with the point with the largest $x$ such that $x \leq x_p$, and we break the loop if $x_p - y_p \geq x_s - y_s$. For every valid point $s$ we add the edge $(s,p, dist(s,p))$ in our list; - We add the point $p$ to the active set; From ecbb9f10e3de37c12aba4b63b53ec34658eb987b Mon Sep 17 00:00:00 2001 From: Gabriel Ribeiro Paiva Date: Mon, 10 Jun 2024 20:40:16 -0300 Subject: [PATCH 04/19] feat: add manhattan distance articles to navigation --- src/navigation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/navigation.md b/src/navigation.md index de682c536..853cb57ad 100644 --- a/src/navigation.md +++ b/src/navigation.md @@ -142,6 +142,7 @@ search: - [Delaunay triangulation and Voronoi diagram](geometry/delaunay.md) - [Vertical decomposition](geometry/vertical_decomposition.md) - [Half-plane intersection - S&I Algorithm in O(N log N)](geometry/halfplane-intersection.md) + - [Manhattan Distance](geometry/manhattan-distance.md) - Graphs - Graph traversal - [Breadth First Search](graph/breadth-first-search.md) From 5103c5644e917b89ded68cb66d51e72c5b64b9a4 Mon Sep 17 00:00:00 2001 From: NaimSS Date: Wed, 12 Jun 2024 21:09:29 +0200 Subject: [PATCH 05/19] improve text and add images --- src/geometry/manhattan-distance.md | 47 ++++++++++++++++++-- src/geometry/manhattan-mst-octants.png | Bin 0 -> 32513 bytes src/geometry/manhattan-mst-sweep-line-1.png | Bin 0 -> 85072 bytes src/geometry/manhattan-mst-sweep-line-2.png | Bin 0 -> 69362 bytes src/geometry/manhattan-mst-uniqueness.png | Bin 0 -> 16233 bytes 5 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 src/geometry/manhattan-mst-octants.png create mode 100644 src/geometry/manhattan-mst-sweep-line-1.png create mode 100644 src/geometry/manhattan-mst-sweep-line-2.png create mode 100644 src/geometry/manhattan-mst-uniqueness.png diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index eae318800..a448c3717 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -12,6 +12,8 @@ $d(p,q) = |p.x - q.x| + |p.y - q.y|$ This is informally know as the [Manhattan distance, or taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry), because we can think of the points as being intersections in a well designed city, like manhattan, where you can only move on the streets, as shown in the image below: +![Manhattan Distance](https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Manhattan_distance.svg/220px-Manhattan_distance.svg.png) + This images show some of the smallest paths from one black point to the other, all of them with distance $12$. There are some interseting tricks and algorithms that can be done with this distance, and we will show some of them here. @@ -31,7 +33,26 @@ Notice that we can extend this idea further for 2 (or more!) dimensions. For $d$ $max_{p, q \in P} (p.x + (-q.x)) + (p.y + (-q.y)) = max_{p \in P}(p.x + p.y) + max_{q \in P}(-q.x - q.y)$. -As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that maximize the expression. +As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that maximize the expression. + +The code below generalizes this to $d$ dimensions and runs in $O(n \cdot 2^d \cdot d)$. + +```cpp +long long ans = 0; +for(int msk=0;msk < (1< x - y$, and then do some casework. The images below give some intuition on why this is true. +First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point $s$ and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove this, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The image below give some intuition on why this is true. + +![unique nearest neighbor](manhattan-mst-uniqueness.png) +*We can build some intuition that limitation of the octant make it impossible that $s$ is closer to both $p$ and $q$ then each other* + Therefore, the main question is how to find the nearest neighbor in each octant for every single of the $n$ points. @@ -52,7 +80,14 @@ Therefore, the main question is how to find the nearest neighbor in each octant For simplicity we focus on the north-east octant. All other directions can be found with the same algorithm by rotating the input. -We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". +We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". We add the images below to help visualize the algorithm. + +![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png) + +*In black with an arrow you can see the direction of the line-sweep. All the points below this lines are in the active set, and the points above are still not processed. In green we see the points which are in the octant of the processed point. In red the points that are not in the searched octant.* + +![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png) +*In this image we see the active set after processing the point $p$. Note that the $2$ green points of the previous image had $p$ in its north-north-east octant and are not in the active set anymore, because they already found their nearest neighbor.* When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. @@ -61,7 +96,9 @@ The next question is how to efficiently find which points $s$ have $p$ in the no - $x_s \leq x_p$ - $x_p - y_p < x_s - y_s$ -Because no points in the active set are in the R_1 of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. +Because no points in the active set are in the $R_1$ of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. + +You can try to visualize this on the images above by thinking of the ordering of $x - y$ as a "sweep-line" that goes from the north-west to the south-east, so perpendicular to the one that is drawn. This means that if we keep the active set ordered by $x$ the candidates $s$ are consecutively placed. We can then find the largest $x_s \leq x_p$ and process the points in decreasing order of $x$ until the second condition $x_p - y_p < x_s - y_s$ breaks (we can actually allow that $x_p - y_p = x_s - y_s$ and that deals with the case of points with equal coordinates). Notice that because we remove from the set right after processing, this will have an amortized complexity of $O(n \log(n))$. Now that we have the nearest point in the north-east direction, we rotate the points and repeat. It is possible to show that actually we also find this way the nearest point in the south-west direction, so we can repeat only 4 times, instead of 8. @@ -77,6 +114,8 @@ In summary we: Below you can find a implementation, based on the one from [KACTL](https://github.com/kth-competitive-programming/kactl/blob/main/content/geometry/ManhattanMST.h). ```{.cpp file=manhattan_mst.cpp} +// Returns a list of edges in the format (weight, u, v). +// Passing this list to Kruskal algorithm will give the Manhattan MST. vector > manhattan_mst_edges(vector ps){ vector ids(ps.size()); iota(ids.begin(), ids.end(), 0); diff --git a/src/geometry/manhattan-mst-octants.png b/src/geometry/manhattan-mst-octants.png new file mode 100644 index 0000000000000000000000000000000000000000..29f3a8b638f13b6bf88eba06e8ff45e24e5cabe6 GIT binary patch literal 32513 zcmc$_1y>wFw>Am{OK?aaKyV8l+! zfPg7#D=DceFDXf>>gH@^>tKn1AQzLagQlx7LYQxmnk;66h+G`LhK$IFSRDQrNsc`< zAsHE+?w1&DeNo)28Y8Km$eP&qUSdbldD3;a(s(GAMl1{Ie2iZYyDmB}1Km%-aDmGL zuH8SZFM^jC6XntpDqbYhj1deWKTZ!Z&`ryWARy9yefbvQpNqTnSXr41g5w_4+uxhO zPqN*LefGf`4(7ok2W4U);G?)Qv1jJKIHy85W2%w+f`*{>J6CCfK%T=vOc9eH+^7C^ z>8NY^>(bxnqS-2jm>3X3gfvb5cdmj6701b?yYAE9BJDr}i4yr@=)ojp<^^BAlnX~| zQ2vY*rH=mo5I;lVF$FKl7OWciSBztEZ}_R?HRbRdOLr@1!S>yH#%EUIShJV83X%M@ zGJ@8+&C7Zk{l&T{5K%KbDcXS?Trlq0Cm3!~8m7El#|j0{#!iFjcrf-rqOh{q+W}Nu zw3m%EeQyHnawwy*I1H(5LMW5S(CXO+;_h2R>R%O%L&`Z~b!`H3vIaHJi1^L*3~j5T zQmcGQB;cN?1=W9tG%>g!_*5lg4*BeI(ZRZJ%%fJS7CuBwEc9V&49`O%FK#LX^+<4)S!o^Lk zHb)aaq^pV!3y;QeiyFEg^}DB}xG;&*yPqU49`U=hq-p5Uh;|oyI~+NWzxe*2%Mau; zWX@2q)NaqOh7~j`vhbmB(s1RzJjPJ!a}~YB7kR26IkmVM3i}WP2_>BsirdHoRpR;H z>kyF>q|FbmCT|ztG_XjoO;!8_Pr;TkgIY*mff{It>5?cPQ>ww_<#v?^f>qSj*GbnY zyE%e}&T}pk6X$v$%>uLuGmyV|Tz%Mr?-92bo=_wYf}j_^{eXV`rn+!PTmG>2yy}m) zdZK!&vS&#?lHS_-BZfozL&ihw7hS?ZAy;Hrx*F141EE*(!h!@rcy}H@lMg?{o*eBR zAq8JOQiB6KV=@ByaP#I)S3*GuXQBf9{61GgM1J_ePbX*Rpo_dls~(joP6VPv7dl9Q zK$Id5@?C~%m`V=$2PCT=l0QSlEr{$JXh`Dkqmf-HUw({SwC?d_L!Itr`9SeHOuY`N z3gwL{!NM!AP>~G;8-$@ATNi9Y)Z-1*7Bn3dJ|Dz~UZFE$aa?=}X`5(r^LSlKuV}75 zv4CVT+IKPHsmZTt$?&N0KM^({FiLAvy%{DfMqNyLC$3CGl!Cp5eSy9&ZA??3im4^u zq$)XsPnN)`N>38`>)YqQ9v&q6(QHzg-?nXd+DNNqRf;kvNo^P&kjQ!vO5*oT>9a(B z_2}x-X2gFtGk3t&4ox?k)g_xlKE33rA~@_9g-CsgoObnZ36(ta`4Xqnzq_G${wjdM zIH`GK{!G>f1WOR3dy9L7o{!9HCQOz0Ay4(=dm0CZcl2K(Ce-=KIxO}1-*1Cf3dJShpmV$-#+a=Q+e){xV+wo?uZ_v z9HX9mnP#zO$q&W-@F}hD)(Qn92cIw+7z9$sXeKDx8JubOQfiaiM+z88UNgt?(IuwJ zXR9!l&ZzxSKhaow&&-_5~sw# zZ_PE;a!thw3ZCp7StFV1Z~5Oui-T0ZmkX9PX!%ySYcXpbYSmVBY0^~cm2u3{SH7u8 zFDKJ%FPtk?)^66cE_a{VEz_x>Q0x9K`c-_|Wh#1Rcv82bUU9QfCW&5tTAfSvb7`xp zd*u%CI2(x!S5du<;S$mk?~jl0-x$)8fZNSZ8~JDQC6GE!I10sqyMwxG6vRs7Y?Ha-u~{^T{%b;FhR z0neVu-=S;A>!Rz@L+2S#xH7?uN;Ii?kf1CI^Q+Yj8Fn7prv zYxsmM7Oaacwye`^fBf1DSF7b1Ul`Ig?f7+9eD2=HnuSv6V4t z)T5}Q;>OjbzON zYwlAXuRNLD?A-j09S+AlYdpF{BL(Sg##T5IER0(hTF;Dl+g7~3wBVT`Hx-m@0?Fgk8@322Je~}-x%u|w|Dsc(ofh< zTIKyYx;&G+**Vxg9d+^<(zsYUJwK4SX>k0wFfo?2+q`;8JRO-mvN9g9f4awh13H4| zZ;#}R3%&_PK}JhM{()kL`U_1PSrn5KO97_>>j1|KE1x)kDI6D{uz_=na5;J0a=z|S za#hkg>SuU)_+X?~xCnML7Eu&mg5*#{qJhXsP`GsXhe9fRsRkMyS<&c**c?Jn?wq$| zZ;XhaxPLKPX^-9O>K~;o7}cLbpqm*(t8vYVnFD+bWpp1umdX1RyiIOls&|L(oi`4d zC{L;2)AG=NP9;cfX2AJ~{-w@K;#O)tW{|*HxgkgM!#?EG)5zlIBo(#XzHGM-5y`1p z4b0mZ45=F9#B!FU+TU;7^;SGrh=f6FB*yIPx!tjFmT@6REq#?X?}vk{HO%$+hImm# zMO7-FbmG)j#>+tMPjiV?y+;E_odOC1i~_RZIejclaiUWMjryWA7D_NCWx z{R7MHDJ$}=3BLMgvRzu{toPCv@7Ec+IpO_R;rnP9+^@n>s<|AjS+dWoK9rp`XWxB1 z8QamLZ`_&ip`QXb=tCc&^pW}QYVdvd|-_WZ2ZXyA~Y9_ySN>}k|iT;R7 zLa!%$sG?)NU46^l9CfX9F5zYzO5Acryk0}lNHf0i$anRjsfHwI=m2MQNGA1O@o-PAya|#fmlO4ab(YNoR{y`hKPFxuTAQ4qcseK8k@&mY$2+ zkU40zN;92<5S(6ivk@KU*YzHTsLq-#{Y&*L4w4B3OUg)ETc}$MrTnEC zS29+LN)mjx>N>WiyX|_sIjW+n%p%O;({Q%c!#G*qHN9Wjo>R)bF2n^JyUy6l_}OS? z&He>L(0fPt5;}shMwDoD)#0;+zp37D**tn(T~i$e_I`SD$u%%|dUMO1a7=!zL}nqR zY_%+c`EMaQ0l=Sv_g}9Jo8X3T-bq9dB1@F}VgOjhK!JV8C>zqkfg2V%xVi2U%5Th><_Odwo9c^mq zmvs~p&~FiQUv!u36o-N>E<|>5eBlA8>RLo+m-i+)(gB)O4#Bg4LlJAKD{rNwgun!( z(GidlNf1zg6e4hmB9i`3S_bhw!i)dpBOxF}*&-nScNt~i{`^Y@u4kG5y1z(`L_h=n z!v`*(uSox=G-A-#7ypxv2c98_Ye>q=19uGzH%m(=cN=GqGv!tSAmgQroSr)Z0wLY= zg($C1dj`}$XRE2}p{w*!(8Ae~&Fqu2xh0#AqswzW2*N&sK+@6D!;I3$(ZR`G&_{&& zKP3c#^m8^lHRXSbc-V_j>nf>IN;FL||97{54zfQ#Vdr4`!2UmV1ERvu zxq_;;K9&x8Qnrr3m;pLOxdeEH|5N_|^W^_({9lr~|4Wje^M6bJuP6U+NiBCvH%Vtl zK&6N1|DCS?7XIH4|65R){kiA=Yb5?_nE#UtjI-z~VfO!-GtpN`-HcekG`_QyQqctN zz#{w4?-%g*J#anWfs4DUfnyd}INUz+QsSCEh(~#73z~zoL$Z_XgINP>(kK=>M|6eM zTCeN82bD3^KJUtN$I?G66zcXM$!Ln92zkB6cu)N`Wg#pUnbf?NBWGYMXqS&av;Fbp zq}}`WX^B85s zVnBoGMSAuEfDmgf(zqB6t}4VCx#HoY36Qw`PT%wn1*nFo=NtSz(*H@_g$Cnyv-6a1 z+aLpC31V6Wi*A4l17nn&kk>R{2MQp+C#z=vj}jP=a|$NgZ3tI@wpMwudi+njSOK9% zEt8z(9qO+G>xLcIj!F_@G2QZFhxVK?KojXJmAF>P0Tsto#k-gBKu*5>`ep<3xxZnn z{*N|1RY)zVM4%W6kWjIxw#lCY+6C6PlekQI4+zEdmE&AuBGLs-Floj$;sOcBm$72L zfX-2iB5Tg)>LQs{8rNKa98&E1uCH%^jy5BC23l(aU7t`;vK6(U`Z_>?!Pd!d4LsVd z>bq1oq=R+L{K#k|1cdCxl}_bF08Qn!)Z?ZYKr5W7?j8<)0YdBi4%Z`#vcTv*dX~|> z4*_(&RJ}^3J|hE)FTL)N5{p?MwVRcod!9ZCu>*^#2q4jRAnE>@4XAlqiy|jC9B73K zx?EsXX+2eE2D{>h~xdjBbg`8t_883Z)? zQfGH9lOG-F@;7sBmPMk#udy!z(;oX%gYj=U`W%4rYnetEW$2n=Ku>wz@AG6!AlSmo zOY=F6+P#|Y*DN!Q#){=Xe~iK=;L666*i;~bJ z;S0IZiz0SyP*6kL2FbmZ)i+Gdj7a=N(H_Q#RHM>T1Jb)3oaA4w|;%QITsvz)&!{S#wqh~9* z2C`ce(6Ez=6*v+R0Z6_3;Qp!Bo7L*dd;3HKqY#z8)JHv;4|_TV=MEAYj0FX3l+575!LUmTF5in!?!#13S!7-dy(@l) z)jN;t@F0vz1Cu;0phb=P?)#&+VECg6=}f8fdY9D*UFHve2|!*GxBIZH{j{t7e(ST! z*lpLX$aJL+yZf{f-=b0GzCCtM5jV}o5&>zmoZX-7oh1eDwd5;2IqzjhzT8O)=muJe zN`a`Cq-mSGv4D3uWl%%(0Lb$9>*;oH=Uj{7f_1(%pCUcK{qM|~5)({Fc*vA6y+*6- zd=dYg2@u>c1{9hAt0G5~gVzs{H|D}&=SkoN(v%1Pt35M%dXHAGcj!B^0bG0Rs3C%&b7(nt=0Xg4)P@j$St?Lds_@A_v0^1BTs=v#Sm|J;`^UN5`|9cqBy*CT?gM3W$vAZa@;-shQ-1h;GD^B>b<^A{ZGGGCVh6mq7dQh=PG`Mn6vb@adgIBs zpU#@QpIC7jtOzY!YOZO*34v{b`tG2zRv$ZR%oItDG}00;283%7lCiC*nc15JhHicU znGV7yRaymc2_*dU#=OD`;LzQWu~+)q*y|>kryp~;8IN!z9ztv=kWwBxnFTc_H0cFT zOACVRm?cVn{hStq6`EkI0h6M+BVeB$dbj&0kF=`uW{HY%Rsp(#CLj(o2{@Nl{Py)Y z`u7JG4U%Y+8B?<$yFpz-!Z0%L6^<+rI7spQ`g}X_O4`!)P+n7DEmib7Q&20(BQ|tk z2E)CgC`oilF05G)Tw<(a>}x4+WZOIbpwf|M=tE?aoK*-`uE4m)yEZ-smOTT zPT$*A?_(-W*CN>@?1J4I`yIZDd?J&8NmLWx%W*z~n$4kxGK-b(ps5_ne3o@!nomadsOs##V24B}n$v1nf#UP{ko#3*V$+QB0C*$5FM zX(LNWf!;3J*NR;g>J10kUGCAsJm>U=AWY$}9e{PDZ7yq9yK{LyM1j_DgRju|F{!o% z5{qyx!~EG}M|JfxZwxrwGNb&J!G|=&s_}Tt5tF$W`Y&twPGzRRz@)xl*bh6l%5@|> zYF-aoORLuuSFb!^{KK*ZhCkh++1Ip|&=I5W0H*?D*GG6#41!%srb&%5oDqA0YT?XiFP}x@tECR7@&-yW$?gauFF;$x?!5 zeq%U(?5Bi+94l{P)gGdIu^=vhWv}(7!T7d(3>QQf0kzx=rz0i-sl!d+5Azv{nV$0! z7!(MIomW$eJOm&;B2OvGgS_Odze#KE6C$iETDW%-(BR>X15^%F?WLgZpeOxU=Q)#; zmI3*Pjiqu826iGh#aXSA=mMl@<)u^*A;<%v-W59%o2+8Xq{6F`AN9OQ`Rl);gBa#> z;8kN-wEi|=g6gcvJ2_~iDFQ4pVf=CvujI%(rt?h1w%`59u+G~x(h6^z$Fii`bugT% zAo*#OQx+Ye$rMMxkBq5r-Bc9 z-U`!jP3T}t%P)(QNI04Hg{E$eItip%KM$xNcEKJFO=rr~%&dc@0v8dhi{VD&-`5gN&^sOac5Vve*f{$mu`tNmU*6|VtAJMDd9S$2c*$gR z>Zq_ti7kcTRgyQ3(C02t5**fcceNfhj8=ro4zHfnZ}??P7(DK>{#@vri#p=0J|IqL zlS8Gmk6LZApPyMgkE_FfD6G&7qGCQ&4tpTx{1ly{SJU~W6Mu*T+##_0#hq!jW|ta$ z1K(nlwHb4@XCqcz81d~&PjnrAD<=hrO9`rpmm9^_x`nT(-7q~rN3xZ~MK^3>B&g#w ztOnUtD8wAxM^6S7v#Xb3eWf|zrKuo)1aI^4-8kgLn5=N=%9@xOv8BN0O~9+eOELfW ziYKm_tLj3Dxowg?-=g~3+EE}bm9p%RaKL}&?)50KAXPh;^E-Av@mcQ0j*TxWe0n?k zC)+yT)(92->f4g6)r&d$<^fi}Jt5?9O^HhKC?nSOy*v2b5C|1tj^WKhiQepsuD$H# zM^hd0Y79-`2K&_-=kG{cn4gf|BuR}m*qK7f>*2D6(C>Yvn#})3s}j54at~8LdQIXF zS@xjpEgMMfhkPo`H-ihB4AFm93jq`a5b!wSsQS3n!BWITl zH>-r$l33ZMw`?{HGTN0h@U*7_7(9CZ0vrT?b2-zUEG0xF9HO`n?s}zJ+$H$N%3R6) z_P&K$7)riXUu+qi0En1OHlwlaOcSS1RHDK)pjUXNfymc?HhROVjSGUhPrDv-QfOo! z{%N*!r3Y33c^MvuDw}MQtaZ}uzB0JJH3A`3V`j^(tXl>o0cKv#uw1R^7&9@+zJk*O! z;tH2*P+9)IZs3&-^PD&0OV*2c z!gV%V>+nUHr$1N8iJ>6aGM}Y^Z$1?Ab0FYyneFCzV=r@fL1%G6S)l6~jo$E=1a6zZ zvwvdj*R~y0APNR9(c05t{%{E`i9q*JguYHv4ogg$TuT9ofB1XJBk_C8yoiZDC`SKH z`&*Bn_O+e716hc?2bEEJ3-`MP&O$Wdr-HPep;xg#{QF)q(6-?gctOx^?Fjs}A#Dz( zQ59u84j*V%ayANkZlwxj7A#CX9pisSH|wI#@n=0Irq2(kY>O-4({Q=;8h%0U`Q4>} z5OR$9M+YZQTH+A}XuNTi*Tl(cSsR*L5FR8Jc(%XMNW|Xl~SzX3yX& zaw2lBQJ)B<;$gVwdXl_|O1t<{h!0xe_f&cJv4RTbwA!Y}gPWmqceYC|3O!kmE1~e&G$9bGS@O4{Sn8{!3 zEy{c@B50)yIw0_TkqVkNp690o(}MqO^Q2P;nYaIvpT&jOw4c~nWQ)R~mncax39i7Q zzD!JP$4>`C^63Njj0o5<%R*=RXLU@-Oixdj_}4`Vx@iKf8{~b-_K9kX!c7m7jvfxm zzn@UvEjxF2_H^THJs-FR1-nhcT!**ZpYNzx%;|~Pq2>`yy{M$f3ear>4b4@J#Jh4u z^Y=-le1Bx53HaW5A)KY(Q3YbYjFqQ&fej_KWl9orq76a|p#k%H3zSDEkfD)zsIn1( zQ>lYOtAvC(_S5*gu-%qly25_>dO$_|uF$dhH-gV->Xoan)A7ORdbt$1pg9dw^mBsn zGR;EKY_h+9=(L*>YBy-kB_AN&?{%G8xBI-JijziosU&%{WGKA{aNc>mau}u}k=0Iy zhoF(`60_n=WKaju4)VuXkL8O9^-!Y=tMPc8u8Cyv*k=S{7E2?S0}dy*FpjS@Xhk+~ zOmXe`%RoAg|0DyhPeY~Nj3;}Lx;^)3YEVkq!~*OuA^ z!z-11kFew$4E7FO^WY~gjBrmvGrEv#J?lJ6*2tB6h_j}XE-GEq0`_@h zeviLyU1GZvUNbbkW(Yzn*uTZsG9-@+67MB*!py;}Nyk5aYlaGu{d-O&egp|@Hm$~< zB9cw8`%Y98+Ud4PnMbYNms{#U&uOlQzs8^;OG6*=5AJ&xQi-vsWFNrmqoX(XYJQhi_I^T`m87tH56hh>O)RaqQA8DKRF?z>mBF6Nax}zFvY9@Yr0|g z;GX7qz2o7aa%aIJsmY0yciDl9=I6>!!)xK@Isb?%%$8S(q>DXP-Gc=|RYPj@OZ)M} zTt|V_*QE98T+0rPN+Y`)DfpS&=A8BeKc?GUjeWP%6^(Nv!hWb7BzwjBC*y#ie}@t5 z2Bt>*!qSt!-N0GW=-&9obIAF4Gq$N7tx0gbl_7{J`1qKB zLHUQ&KU(l`w@G(Ubxpy?ZVJdL;MM6tN?pbfc$aKw{IS}WXpiou<)Gs=!vJ<9coryP zNtB*Q)>Bxl;^0UdsMG{tUvM(7WcUjl;jddJ{swmL3Xt-6`X#hAXW;C}YG1c)9j3<3crH6Bchda%POW~jq%q@6Q_ybaeI=6AlFqeq15eq2 zNjSq6g=cic0a{a1Di}{y3pU#Kt|V<^xbKVZH)Qic3%aQg2on(nx49>Q0#ttCymFvh z4l_8kgAP#VQ{X4auVpoAJK_WS)-9L4I*Bhktx&gu{oDd-QQGik@v2&pFvTL!C6FOK;XQG4;6 zR7n8Dz|2SnwJYuOpM-7IZkeFgy^5;0!dpI6&77DalYecv%J=Xj;J%~jqi|iCc1MH{ za-7YcG$;FfGayJ>oRm)F7~XLTcnWg}l*hgk`Y^Z75XIKK;(VGERGCTaMzEq`{Xx?aFl`STVMES%&#{)-P|Sa~(bAWRQk6ZEBv^ z(#YDNhvrp^Ouz_fy+qlCyq{hX;LiuWM6wttuAi)(-5rubn36^Do>7y{#u2^iQFthW zsh$oiuV$%CkNyW%d%;?)QTpJzm4w}@n8_x?qGK*B&+bTz1lY+Uko)PY)Ae<^;#!$5 z?EIBVLHXtQVD;fS_`8P$DO4`}lbH>|ye&ES1Q_OiP@QxjOG%~z3}g}c09n=b z?OL?~pM7=1R;nUN@tZMp%l>$_kFz0;BF%&V_y!7VXpyejt@m@z1DcRomx~I2pp`Qb z{zoEbV(319kJ{O(4}f2l(iLN#iO~A9UhTZ_YVdkj;5gvhS{)CMu2e*khKn&mN`vT? za%R5r9at<&2KRiBdq@_2-Tt$eW_SVha2y1YoGTdi55WXNhHgnhI>T8g5HftQm4N%iT>fqfB%=~v4=GZ!xupjcH%!~cZ^YEe?A(tuwwTRXx??;Z?6f(N=P0Exnl zvLtlCqjk!ScIvkVY;QPzS}TgyVo2uxf{A5viO|I#)FH){KC#C5M2JwB$`}4gIZB-L zyUkFY{_F2@6meutYvqVz^ecq}>&VGu_nXPD<{N2CFDW?8!#zRE;SO6nZ_4~!iV_k{ zLKB(K`RaDE_2j>N;_^OOL6Tp0{4*7?f*NWvRFr;qh`|1*dQVjC@rw^6#%tG{dt(4_ z608A4jn3#Q;e}0vJr(R3E6SOLC>Usoyy>afOe3&SJq{KKW09Bd##YVssC;IJc6eGm zdIsEo#S=%`NS=0FCeqQ(h|tI;a{C`Q=@7VY-c}|{Ee>q=u^*t;d^%iC5rtin{kudB zIIW}c2Dqp;XF9#%&w)92S@ScWkh|`8a>dMVQ1LNlQQu|$!8Zhu*O06rUI7MJS7PvC zL-rpCGd}n)0Pun_mbX$zj(BjRyhHBh>+fFCL>%h|oFjAMatp{lw6&m@4HO*l>t9bV z%*wg!_lBY60`S&ojyEhE*ktw1=zbw(fw*951$_hUPNzG|B%?#a> zIvZn_{Y@1U&j+5~rK{YuyIk!1LLv!RIPw4_D#4iLjt#(hA`v(CijuT1OpvvXOcbE? zRQ9*1aujALIJt>eu3|0Q83s$Z#R?C{5?T2e5M{iphfjE>`Yciu!%k~1ODwtVRR^+2 zTC|T1??jZeL`JlKqBHicdasiWTUFKN#eT()-lB-kwbVML#qjPgD8UE6`ejNOz}|5t z;Xe3AM|Y%vg%xlOcQOo|>W%3%k_X2u#pz&M74g}O;ttpXTgj?Z)?UA<*vT2wuKPMR0iy|<}~Y%f2lmK_9jmf<3%-(j4WU4t<3XmbqZ}em2%m}3J-t^YeyScQ=!h62R zyr8^G=ug+8_{u%^4-4b@yfJ$+?6`TId{|Heai1dKtXJWosXwPeDE&@Di!6@wKR_bB z;D;lhM5tD68+wsKH^8TS(|~=U31sjXHn#}&lO^;@zZ&h&XysCXGFEd6nrd!KqJ=}F zut*7`cSq881Vt9rAxS1gKU$Za+F5bC)xPxrngCRw?ayn9Kbq^`cD^Vz7R17-$AsCt z?#xLwk&}<&u8iKVKaT^b@B9~!DS4~jP!#m=xl?TH zg_@2F1saTwZKv5yJt@lB{!}YAu~(AE?!OsJ!@Jayp;0&#jI$OFYfCVd_VfAC#d|uBflR2yxkcDyR!+iHo(I?mAzW__o z_?xLR3xF7PR)t>A7AZibgVXMbvPYcOOo8R}Lwylnkp*wKW@H0^lIJ6u3p2jrgYhWoV3xeTe*|`s)jlg( zOMN|*qeHmdOJ+N4PK8Sn2|n9nnZUQZESn^GbM_uWVuOeKVFb6g(B)IM75f~#1K?8E!Qg--FZ$(- z3vW1{9gN9i4@q)N=vEL>1a)MN@;OidbrvIpAGm)3SEj5TO zM`BR|0FEQ*a~bxo24q()l0^EDhOtdZDYOb1BZdNCAwS?V8YTIKT2f!G3OcD3vN_G4{9$hN|L~B4z5Uas6?X82TKF21$R3Plzun5>K zeN~$yjR1uwGl$q`(FF@WO1=V&YJWvHTsTdVFvQ-q-%UUs{P(N)PSd<`W3fu7&{U>T z+rOpl|JdIHU2x$oH!{3R3Udlm}VORUpX6YnXTvxN7_B))x~P=NhFf=5g+#T+VA9$yd+3U`^M9UE@xUJ#Tfw zeq6&dHUIOVvSx*_GN|rm!88o(W2tgpyb2*`aA3XD-iIU`LzvLtyV~*wIXj zrU>q8tn#)+D3s$i3{yVKPXY!UC82zS3HYE0{r{$!s}B03Bm}2QvAUmbmQjkq$4&D& zS~^Br^6OEtPNu{iv_a?kw%+s&8kc$AYaEc!xf5L}&O!|_FORG}`qKBmj$ACiQubVN zO$ZZ+Y!5oS>@Cz==n{I}nm=uhhB~JKppn;cgS&46&m8*bmsyH3?-J!ayNIm&%Uz;m z*xqE(I6&@yk)I-($LC#m+%GLKcAusEn*i{n&pa9rh=z~vVXrzAU4nWtGNkBS4FXM* z0xQx*1v$oo-Sb#dQ8*EhpZ6r44>22pd5V@cK zzM}2}mgHkLdjSnh|H0;p{DJvJ521kr-f*b*j;pOEqMIbNaQB%;Lu7tQiIw&kZBdH= zzM1?r;Cv3AE)%p_bWaH#OwmES-&`VgTLh2^gN#}~lXrAM2Z_N~dPyn>=Uj?m3-3RF zz8b_)>2&!Hfhi2IKjMZ0bU!jcH9Jr`@jDF5sjV)G3fs?Bi3M;p?bia-OwJnzb+wk) zR@6kmix3AVQFJ?=Mf}ua+8Zhc{j#tp<%DpSaz{ouxTTVv0&7%&4G!SQTj?E?3O6wG z1tXB{kLJgVy*q7X8iRVL-P!uflKU1PM_oxG~^h*;#7Tzc2|UX_~)WK!o2 zSAK+zd_&>$atNoWz!~Zqa!`VgZJs-(=<2o6GdnAl8xe$~)$s6m@>v={lhayi4zo z8kw#$qdxErsG!Au-qRg>{bgW+4?|Xzq28@w3rA0VjV{x0O1bhD06P)1B(>E!&Kp~D zo1};b3Rx&|+w8;kYErI10GL|!rgRlLrwHu`MmZVhU1k|jjOi9WQh-|4iEm#%9M&2b zRUG;>FqVwX!rnzf2P0g?-^yBv0?fFW)vNs%=k0@r^EdDI!2ny8T^_|xtOZF5(|(!< zHrQU=^56TK`vEK!o+m4_9b9prP#C^SKEO=t^*-YSD5*IEgb(e(VXBDlI zl$=KsDcZlpovogVo&&5AuhZLOq+tpI-NoK_2TE#>Vldkb(V~F~2P^_DD;8VjE#kQJ z_xl#v)a{8H37+a%gamMop?4ayrb-3Ulon>*z%qNK)z}~j>ft6eU2j52s{j3(OF!0ZVz&g=cIcfg zW-=&zZ7s^ah@v>KV4R=%N5a|blKis33_YuCT+(3*P9>UqV1XeGRzzLLaMQ~^B%ay& z>uS`WBFOWOb5+uwv(N`cN%}v%St+xax26hwV19Jz(FQCw;H9lG8+eL58kjV&y>jz- zeIa`smcMScHw^!*A}ap|e{i6CGf_x?ghMMkZS3oW>{L>!=$ue;kTLrDtUM#c`zw20KE014&znYt8@)TXC1N@rJ6t6*Y>u^aKI(=+ABp0mBlOG&ZR$ z4B#l#vgzlb{b~?~g1x)?Sa}0;*@{$HpT2zT-Tp2lZ@R5nOsTw_8_BrMlCYBC5d1VL zOOYPrT$QV@_l4*Am~F4|m8LVbn2H^EBf|qBM*i88?!NZfgPtaFbxci`%rd-%<(&kq z1Pq7m0Iy(U*Qr553dh64a#=R6(;d=)Seb9<8T7Hy74qwc0ZGJD+Qn?YX5h`yqE=v?;6}D6 zEwp$A;QqZ(x6cqaN7>q0-Y~_Q$54>D=+g#W$QUH+;(hy}0=p<%i@Av?0~Xz%n&rj` zQK37)bgOvixLLCA-N|((ztPbY{mh`^v{`_WxwQuu7;>n*Yh3d?+%{L^C#oQqg-%A! ztvL@;5 z_odl)dYImhNMmVNL|zf^&xK4x{@@w#6RF$&I8CLr*AY9pT%$toLVgxlLi{F z&`@b%z`}0rTW;`wHS)2KH!`nccB_CF!T`b*O%+Y0-;!vjj#gN!^8Vd);TKb|`*XJ# z3*zmh`vD?GHx~S_Yj-T$;uu~|F(&bH2V$=dsa0)Ek6vGu8DhOQBieZ;UWEjTfwL4Y zN)Y5^*a``n_N6TgWE$>%eeQiY$Lf@V-yAmsFYJz^z%pY{A0br1HS|vHR8<8N*Su9bAchale6CaWTR(;(_ePPe zbwGLd@oImwsn`V5MBu`?M1e*Ds+@#f&&}K#LXnB#z2Yh>2d!9RG`-bh{L<)gOhh(eC8;^3j{Oj8><85ha3ukn51^ z@m2gj3(CuOFOG3MkTK3Cz1*wS zI(xZ*#>Zy$z8uTFzu&x)`2nKWo$grHm60Cobyw)t3W;SVIhhksfX)yTz8jD3L)jnQ z`5Brw-a#S1KFAeqUffMYm5hAeSmOl{rV%GIw$4DjoQ3oVSq3BPp8-IsXtJmaQ4D{b+sg0tZl$CZE?CWy`-zKHL9Y~I zv=R>0V{s4P8!ia>hFAXjoX>BUjZ4HDO<8~{z$(t?!}nF2iumA5gym*ullD77^MUB! zd}#t0_p*;73+^mA{1cQS05++3Q)Ws0<&tt==v@bWkj}7GfFy6D)p!GjWEIMnpojf& zA4mGNf3)!T_ZG)j!0htU!pCWYXrF+fIaC12iCf*+l`BvZPcxA3eqj2Q7fMhQtHfFf zR@i2y3Y-y?yDtlUYm+GYVDq>pEcbv-Mi&$%mA78z%LW8lFdxTB)~!_f#{LUOR_koV z`ZyN<_m;0Pj4$pk&krrBw(RA?c}($otqF)!sq*cMr|xU?4ND?KWJY*2P2w=wzjhK; zh_~F#Io6~p4|2AdG&MQVp-)bCvjnXB>DalSzpE^O5?;Kz%Nuq_w(or~GlJjs`HJev zP0$i-&r3=tSx6z`_k*l>u{D?BWp_(thsP*OUR}AoN3;y@;oF!bJE@5O_^<9e+19)~ zIC{R>Qt6x!&&l|A0#kBBToSOI7553AAu{hTc(wv5=BgBfPT7MML(#^3DZ8UR=0+L? zE`2X$zW7oJFLuN&^%#22YRM4#5cnpE(&{0*RI-r^C+Nc8zAUvH$gRSQt4(E3SHh`s`H`!3*V#(4v%@k)?5}xuBPFO{C9KBV_GQ$!!Hbnv}9FYz^h19*Cw;e z7Br)%9@k!00=p^&E&8;SdHJ9r?zvKp#mi_2;`PiB#0jtPs9MjE9gtg(Yd{keQa6sf z=(VnA^crS5U)B&GQ8t=F{Pe%KG*`Hu^MxC_qOEmKp70l zq8QUos;;#b-Od2fsZZn88_C#R z@*6!maV1*l1((m6snGR~9Tk{nC&>y3z>1WUyQZBHc{YUbWDR7Z*JmmZs4f=j%=+V# zqwvVO#&eRpo@12+0B1enNUMyY-Orf-H<>s)iE!ZS5-wmGU?X|EIRS5SLEBnAiGVRdz~dJqqAUq zIKS2eVBc%=0lYquv5y&Po@jAWo5E-6WNBp0+0WxKIXbNwC>r*3VXshTao|NaivZSE zeNdIrS9svsJ7%wSjlNHM-e5=jrC94!4vnwOd*D1Dk8fh`peUnbUnEwn@;P$e6Kn60 z6)8*Zcl-#j(nMs610M};q;)SS_?!$K(kO$@i|qzHWyS@A#*_dq$~3q1{eIE3EWA=4 zZ2VYc!tm6t)UHx2 z*3veT4Q+ntI2%Ug3slT9g^SvVyOfi`>5~6I0Oo9|UC7CN-4C<1 zno|=JVUxnz2>|pktGXXiErxKBi7x+7hGe(^#UP+MdO4~=FIEwnEGqb90=vkRxk1pq zPD~Bb^SPG#1q|ne56TYJW0?tU@wXIH;-4*9)(}ICeK=rKvAq<32e>Zv2qZv2n(y_j z&T*qwsR_Qe$lgm}81prYPX~jc3@Z5!w5Gngnpd#x;ck71cX5*U-+5zyR@%TBp)n@l zs})h;i;Yu@YCruFw=I+3kWvz$PV2EOGg_q2z_%@lO}ClDdUHC-zz8JB#aRL^nvYCo zM2;Pyu+|4Gq8hD9DU2y{U_k-2EH?yuX)I5O@2dRS56{)-jh9}p?gpmj`Ad=;k|}7D z_}46`-q|YP4n1?Tl6hb{$nLvh_CFhA9ln?GEz`X1M-6erf*xh7Da-X1L%gRmFJgmL z03_;BGgp8K6iq1_G5-7(M$JO1JfH=V>B_U{So$Bhni8Z9Sq%3JhEV(1iZ2LLno+_SFUK{Z$(k# zjJ#Kyg0DoPKE{=z>jF|uRG&yf)VGqXRUm7Hzj|9qY|FoAa6bF=370}(7*utNg3Bsi z57;BMeouHX{~a5W-hcz2xWVBC0TVwE5QL}T6{F=SC#N3Cn-NZ~3^S{IxbOOkb^ht? z?drU>!0q(|tZRL}abN$+rG{F^klwJtw@Hx z)80M)3JkvmTdfD)@&M7vyyLlid?zj7MwlwHd7>B%9W1NaMWO=j9s~sCS^;6c69$_A z;XMu@dDHO}Akot%zYuC%S!5DiIDn{HB#PYVx&ttE7BE=zh1B0+~+>m{kcA$ z_qu-V{f{6;b;k{@_N6}FoT?J01WIn`5YT43We8gs8(0Dt#fnXov)yw5D-|Q*)`wFv?=zBjuB>4PDQ-%o}Ej9+WZ0|8OrYxWkAIn8e z17Xt(Fm{NmKnoH>E{}h&0WqxeXlZx=dUuu+PiJ4f+3RnA0SC+)J^C>s>)vza{@^19 z!uW|Nazi&+ao98b>SDJ;3aC#WfNruHF60Vj3BK5FTI>_ZbCtUrWs4WQ-_7(UtmP+* z3+CEjj6!nyJ6>d~dv`3u8ua=s@vQSIN;?EL_8r!T~Yxb51^}YI6p$$%QGU5;-waAX%Pc2&JO;T z1YevOquj>|qHxtt&S=8JkcR{kRBP7!@_Bb|T#-?ks>Zs;2poKGCR=CdTU@$6Thn8Y zuF>nx`%n*iz`cHUCYkiQ*lI{rGK!8R;BE({&+Y7yFu6ZY-6xqCM80a7z58B&AbGnT zz-GM(r+JrKj>Zxs9<`Z?jrmFSd&HX1D5)-?Hpfr!#+AvoF;Kbwj*u?g@7ZRK>-hVsss3w>BK&aU+?L;Hoi?mp<#$2H=k&u=miLQ1EUhdMtg z^km-7*kv90OIt8tB}AGvYBzB8C2M?Qxe;;kk+??g~oRA$${ z7+$1L;rSmKR=vqC=E_l}9|N`|D$kV{WA!{q@kcXuF-OB^I4a#;VMRFK<#)9M5Hy{jxibaI`jzuqJ8pSK>!Txm*bA@)LWX>`UX>pvEBvwJ2^s#lp+xlH z^@*$Zyl2nM;}@U}Q-6bv$o6c0n#xTr1vZA2sRFSYs>t?dodm5PiRIlT-$9~%;E>;-b{qbb*)i??9Nx)0CJlPIRw`e8N2+k%$OuB4Bv;Z)p z%WWCPFx&{(S{Fy5^PWCT8uvMRjN{F6ID;KqRDN;#NIE~xy5H?Stl8AN9LP4PG*2xz zu0YJ9RCe{(D_hE>LqAN;)F z&vkB)7qAEkw4@=G1HbLL$4A02gIm3<)+ZQUzgADP-tI8Yu|}_A{g^x~=e0ntf0y}rbG&uZ zHE6#F@ep$PDR7a=W6LxgcdqZkS5%p4Av@mF!bmp0JKxgq>(@HZAAJCs)V}y{Y{_@d z?W)?E51uqeFM#_-C*O;ekr!Qek&9+VP|Eh6o|B>rOW{C)LZ0$ zWy_HmNaB(k%@J6}dHkfdw=A%BrDrRZlMSiQUoZpEAC7O8`AcPiZ>S*dzjU_vIRBB# z!Vg$D$=kC|i0RYno)(c#(tvkdHoPYBX%wEZ9Cvy)u(T{i6aMapz_Fg1PbO3=?&G8< z6ynkziw_$XeCNy#_$7r#1SOwu|KL6Z9G3m@RT|Sl2asV6;v|g=%G61?_vRL1*TKfe zzc7A+GJm8?i9j_|5JRHt_yMnShQPRQUw%@J|N7^Ef*mCjQ4eaq^`7{$kT?I`LLtaW zvum~vjwPp`-Ov#VeVE18-*4ezOz4aV-N3jY8Wrvm;rE(-C^8#oN`K2|0JCN*PFFjB zNGN|@Y1V-4i##Uq{E>8k)xYvw73D7uSv=r>-e-+6ewR|b2rSub_(sR7YYRdOL~5mp zeQWjh1A{H=xh@$(W;Q&wdOy4jA1XzTf?f~H=I26;`70=yZ#&4uRQ~wedgJ1?j4MT71&tcW@?*r|K(h~PxkhytBu!l zI%bh<&2)gFs_a7Mx1u^Ay$}+Q9<3xMJyFjrP!T_nPGZ?rAek=+b$4-Ob#Alai4ouZ z`}!f|XRmF9ZK3~0ciT>%>PUJpM6p(IWSKsk*>*XsPOA`Tqek)1%57FQJT#mCGNQE2 zgFinZI&sYqrppC%2GZ**rWrQ{&j8>o4y-M0XMm%2ORH4A({F)iERGrM02_TJ!h!3w zkJt8>d~;ygXCx#@!C0X=SYhR@_}fZ+)9dT4hZ&j!IJpp?89&kC@142Yg;ts5z5!*w900Su zL2V}=Xrb#IvzcYRqUoA{dEz|$e%$Pb2XP5rK2OMUtIR8NPO;EERKFj zdNKHPVck=BN^I+G+u^XBLAA$xbDaRv{GNJQ`b+#y?~39LGDdX*q(A6t69qagw#4m& zyXb=9d$gBTq>%*p66^ngRIVoKgd?f>mp|xf!DyslP4MA$lEYUS-X8TtjvOzD?6tB% z6(Y||&tZx;bFhr(I5l)9iqWjbfY2G|P=EaF$(qXaWMmP9H<(n<_gf&Yqy?8_0MN6C z{4CA`qeg=!*}lfU(+{+qw`vAn)p8(pWNwRlh{CW5*zPu!67CH#wR{m!>aGdpDu@uR z=I_*FR#YO2b|oF3pK-_KEFSzFXv4`0Qn-=Lpi6#DYjpSSf7F7JqDo_|-x%!LG@ney zVFXkEVTI4+c5`7@J#60E)u;^_wR{IsWT59eBDD`rZD1Jg5^b4CgkHTs`h@!Y_h#Gw z9?g!9_EC8Bksl?Ys=Y0fSKXg8Akm-}sWciM{irg86E#;owd<+A96||@e?$e&5KH!; zZ<&@hg(Woy+lXZsn$G6{1;p`R>&KsRU3DuhTgF|#qDv&DAO3!p^9uNhSjZ@+8z8~N-gznweMiuJ-zWuL`%7Yfi^owBo*k+mlo*iZ~x5Z zO@^J4lANzaU&(85n6Cm0h*`lM~+FClj+MF7aLl>p?`(Dtf z{YNhBU1=mwI2ek#_402BbFK5oTw;1kbi%5o>loWlxZz7ALH) zxQQ2glX=>JO5)+BfR(=Y4db9XJN5g^8gX2~Bn+oGmwh9?znpll_Kk%$ihG&lkDqgf z^vBxMZPIlH3Z6;1s%c=AK6qU^ToQ`^0poFrzn{ z<;Yrfh0CrcsbGI7Up2xJXQgnVKByhdQjA0zjYND@SR+642(TBX&@lRX$C>xuOR#>u zEzxSW^TB&~KjQ2q-AcMo?qkUrURw@?Jo7pt@%OiU08j@|berwbpx5)m*2)9I)*5Zm?3xL4Ju?%Dc^!(xJ*R;Hy=TP^yK6ZAFk!om@n2 zvUYlqBxxV`PAq|ewvAEP9K%evu0(L&JaBX&KuBA-@jSGS&QN)s;TJ{-c3*LUBvtij z=)G~47S0#+G+WXws7(k{o0N?>>iiFz#XB9<3Tl(Z{VSmK67NET)uVXPBKd5&If-5p zRXUgiU0vPiYD&4Tm>N{YN`Jr0|C~|#+6xm~wEG;EFUSyvq=xFHg1bmFzaY5M61c)m z5Om%R1Uqj}`I7F0J!zbE{uHhWQEk?F+IHDT;E_=vJ3z+Rse@9+8XERNy}eDsF~D#4 zUK#6Juqni0ZZwh?8(vGc7Gf<4m0#zMNYb$Q+OeM>2_p*8q=J)Z- zc{OOBclIlY*TE(cn0=~lRz`o9 za|i)~D+H!eAQwgB%rPr_Ot01IT7eN_wLzi~h{>!X5AD@>yIMU_%c5;;9+{ugKN0tOlFdG(q{G|=GQ zc(WL2-krLncKRk4S~cvyGjhFSMU2ox_qO9H!J;3Rw2l()!TI^;iUq(^0;J|o+E#dj zi8GMR!nYxQG?CG(?ZEhR5s}t;vyTMojwkNqeF-L7bbapyI}yq+9VP(h@3iur>CSnA z^y5cC?%TnXd^EayIT9P)=FW5VJSj0iPdF|0Dg3_Xs2ZYvg-KaV*rM^lG|BoS!i}o| z>nj`4WhqVBWEyft9)0Idn*6PJu`?c3w@Azo03Z@;pYfO@SboM7r_mgUkkK6=O{gSy z3Z}$t+?_!D2RTHH>$SMs?1Rm@=tjE4+!MAAa?Mq19c%fhG%^49qz;-xqlpGbo!6P? zhjN0xS7=}CXK~NB*-{=Hk%B88S*!7xZnN#HKPzDu>XM`^WQSS%xvG%2hrI9HdqgSR zjObyNX9||ASe%Sf#JnQ@Mk8$P-$%UxY4m)#-@Tl>#^X9Ykr!v2IoANKI7WWVy9XTY5g- zIant@$zuvu$x8e)CUN7IjF8x`zI`ct-LJBcmf6xMN2&Z~!p68{A(+EC&b=l0HTXAr zv~{O(&K>cOElD9mYRe+jfBxAl5T;i`FK>rZ8=*+%ULBBJ^Cm%$f9hqkdjAb-2+%@6 z4`Gk#0Z7`6$BDGot`YS-W+>Uj}GB>*<7}7|}4ps(`rg&+8WjF%U#Kv-gwt z5Ep!nkSJ6KRcClZ zG|pW`3Jyn|=A#pO#E6|U`|@O;3G8ktW|>VWmg1<_btS2<<2r#7(N6_uxV9oxfdoh}4DOWeZbRbY*#zw1uUDdSc zylFy)>iG{$!Ano-6m5TS?O1%jxA0nEijy#ApSc-dWYVt26hWlMNmiO^pgsjq8Xkhv-{{qmma%>rxEi%_cq z@w%|LNRLxS#U4tn0!wsJ;sb>3=i6H6l-3(kAXP;!RIhCrCZdgL^y928i~ z_Car_(Pw)wSJyn)Kg^(PAu*EICMXlVm5O%OCX^96qmJaf1PWQCjZjfj6)jwr`_>f| zEtH)shZFH6oB@AInHtKfZc3=ut@74r5f76`$tcO~<8enx6Z)h`=YkLc@lt)HzQ7o* zy71vn@)Z*=T;Qc@U2Zym$V;WXkvBgq5&Pdw)kbu_krEQI{f%;)U#n0NTes1{{#$<$ zq)?pcP2eEA@4+9Z_KI4T{9N%JbTyIwC&^{e1%x3HY5s*yQ7qn|$|Y6t{MoxF*nci7 zjPexdJRjcD2HzBTUGiGRuivplP5MaDkQ}ThA{U|sIS(#Tg?4g}#9ImUF7rvoPPt}n zWQGV$A$0^~LD<)}O{PVr@Xyx58{~bD*woG-vb1$U6Nsh9c(CD}Kt~qDXF;W|&Bf#t z<@3*0{3s|8jaoMRT$@YoXy^^cUYzcF_?g;L&=(^!eXatjbB7-u4i?091f6-c{@|E! zjucf$k|wY$LGA!6(EjcZd3QFR+en|%kV-_J`p<{t2O0#5!l`akBa>X=J)=a#P?%v> z4CJt;J@{hQMeMO{>C069$F7dx4;^nZ4K|i^2zu~u<{aVOmJl{%fMn34NR)f80gG^Q z`b^QBdM1a~QTEa52un9;(%pWEyCT2-D~OBT;rh3y=T}z-NE!`~(j4FVirha09`_6q z8LOD0=E+^WXYc*nWMC5xQ5Dh1?zWJjpGOle|>4zoOyhwh4Dm|y>OM&a! z)2JQjxb(+f4dh05$1yp^v-J3z)jkX3yK1g@P0O`!^7(g>J#ovQYZBB5|1D0$vTYj& zGEZ|{hX6gHt;rj*L2=gbXR|Um$r3na57xJ(&HBzr5!F1dy3SlGUv9 z%pZX}$zC!em6G!cCpLdXi#D^tfAxbxYBCBlX2t(_+z%s=jwy#a#9&&;8rwksm%AJT ziAeO_o^9Dd!Np5*zHlh(zl0~i^^ow}`|oB#pA@K9^dFh`y8H!w={7OzFa)ST>=o+v z<^)-DmB$S96=Xdp7w*wNy;yyOrR343A)(@^T;0VxL$jiKNF&6;ZZi5*X;q5;3I7WO zqo3E!n&c$kjE$sWtm58bwvVt|l&Tv`AeE~sWbg8HsVUA4^Q8lf4sHUC#2<4IxtBTm;?fqP{@|YVv zQTb;NFvm0aJBz)j7d?43V>S66!VCw(R($|F3LG)uP@ zO&%V75Fyk*o2I0vH_kwi#f)Gb_lMyQX73*5T!ttYPPovXzqliTV&X_Ng@tQ~Z9H!^ zC`k`ciPY&OAj44A7N8JTIG+io1ySUo8hB6n{LNB<#nFh-0m%qsig|I4 z-c6p`y1p-S-ji~4g)HBO%=)Qqylb$IppO0(K9kw{Jz)R8SD!q*1qfR859>x>guC7fUlQP} z8a`C#HMcO-Q(@VMdk7HDm~jB@*vuUS9&Ja-KkiUxlBH!4b&-w#xSFQ}8H7rTzw`gg zFyjxkaZmjF<;mX_#>*(Jhe0|x`8W#?vVPpWoS3vMp#z_HOa`y6?k;l&_kYh|5HGDI zdA1xDqsAgMGSBcbM7CmUTXAW3D$H~qSxEztX=WayhXYj8pzn7n%UTqRE#Pa^Q5cqe z3HLmqxL${`0yXsl@?W*Q%fa-_2oIkIKxE&Vbfb;w2HH-(Z$#D4`;bftEjZkY=7-n>c#S z4#$z)fC!iXLB3GBAp%N%?-petH!`PznFQma0lSLi1q0)aXP|=8!h6?WNOD-gFOS!B z;OD8ynIDbE9SesbS9>I_tm!!|_Z3y1#+}mxizUj_@sKM+hcONlH}yW^?o@YAiTONvk*Wc=`!2xgU0-}PHEAbEH$Zeep!VcT@X6fzcYJ)c zS=IDZGi*fbZrGxc8{sR@rdiT=nIJ%;uCFOWj$3kC$sb+(uA(nN#U67&H>-B{rftH|RgKRmD`N~&!HwFU#wD>Wm%x|y33uvKOlG~L{H})7b zjpY9}A^dk90C!v{%_qnw2fI{GVj@@CZy;Z7>u2*pUV+Rc3qZild2&|*sILHG6R$c{ zpTVG%a|LiQVRYQx1vZ&~<(z=hPSWlk*f4{QiU7{8{P2^}@P{085 znj_(>_=zS^p8E7$Z=uN-umHEhlJwjz~YkIkk3ygGz^x@>f~WBW$_` zLmw{Hq&@{i6B4plU{xOURPf}}!r2{d1(InQ1XGJd8R>CUm57C|L?c3E-9#P(^57-xW6MddcFn>`_<&u zh!TADZhC`>Biv{M`sGDq3%BAT>l^dwm`_yqpDU2fqk8jzM%h5;@v@qtk-S9UU*#Me z4F;qKc&+L zGwIh`*_b*rXTZNzih0j2&|YFNop5b4Xpq7_hKB_LdH++JhlB4jA^c4q5Qb+e8Tjq zI_4m--Q6)MaMIUN-~tTs8(GII>>06KFp~uNG3DC(da|FedCTKsYc*^{1qa8C6C9}v z@&`Ym3{rC>obv!oI9UlF1s&5If`AFf`8xf*J^svpv=SLnZ$gd!nOzP(v_kZ&wcT z)%<7Nef}3j^&SX8ijowNJYkjTM-5>nohxW$2WU>R0CH+sSHt;pratAFh;L0lSRYQJ zT#wjxkVXe1Z%o}1fr6OX0|wDt{}Vwa34#ocHS_Q}>$KePTqx2_pN}@!G4X~}2D0rt zwpdb`Fyr&Wm8E4}BqAw9rITATs#R<2g_sRE^U~%)KJCvzqubN8&w#Z_}?`z>W*<0}`Bz%xw3seH;_e zFKS@TEBmXQdwkn}^M#>jnT4$FfaCSn^Plmoj_)Pi%s&b^Nk(x~^M*9FD=X5t#VONN z&ifF0lcih(MTULg$(B>$Yoi^(_XZyUPrwvwn6Sxt3G^isF;?v~QvD~7G|qtuz=SGW zruNfX`74y;4JO%;$Hz*XIoR&1hG239FklQ)NX_f!Df1nb;~LY4Kn3=Akgx;5KiRBB z9e^FMXpoFgwBY}4KhMD%QXlpr@N~xw*{yi1WuxjZXXxyDvIfWgFNM{p#XPHyM^}G2 zE#})EVY`>py(EgR0ncUTGYq&Sw-Fglh=oIAl}iPL0F4|W@HpLB7y?nS8z#4d>wlfC zj9dfFO;fH@7$H8{0WKaZURu;J4aj}LgU6E_?~!B^d_!2b2i+i?pLDJe1r_$V8~S@< zfBhQ3r*n8anIS3EX$dlG%-%qrGE$oscVzy z1FmAA;rGYSZZU>2&ZyZof1T)v7Le5p?nRoZmTvzg2LejXW&a^j-OmI2RLS2Gzhq0eK-_?{I~d9 zbw8VtviC&Q!;}+pr_rzPPh<1xxMu>DGjd^`ABDU>M$v{J*)`Q!i=s36t}|+rbCFDY zsziqWRz88h^UXU1NCk6YwS2Z(NXhUIp>?JLMifnfc7x2c5M#j=t=^^7zVE40VS)65 zQzLeM#2aneHltwBcX0T_G0P+#;B5=hC{n4e`^oY&kwgAq{#MRJR!m-}A4o5o)(rC}uyISS zQ!d!q&-F)<)c~EBARS)HHrT1<^*rpp)fki5FLbqsjk-VQ3F)5zHrj9n0GJ-F$mlZl zS{o+h`iE38q)7x&j<-#py=Ha$oNR4fcX$d?t{4*$N(S~oJTMYwOAE`}0HbOVH|w|; z=foa8;oV#&1Af@p#cP|{**z2s`^Tq9X-1E-k07_}60~luoV>c?{VZ>PgB>{UKlZa8 zO+3$MidQ!4y9g)*D*1)yI*^>U`mG+QoFn7mNmpPW&Qk^z9~CM*z&1N<4k*eNjCtq-dH5rPD=^JiZb!6h` zjMHI`$s<~H%njf_K<>^8mifLF-*0{1V$*$7uBAnR2t-%v^(}E3&Nk7)S=^J_d2arm z;k*nKxmm(chq{(U^*Be$7H$X{qcqs}ffQ>-O(U9>QTI3lv!aTf{0rLJ1ELgOYAE?M z07o06E22X*m-G)r^9a%~H<)e0rF}LG;m^kUP*2Vcmy#Q&5%09IHgRrD-`LUOh^@~P zPb5c!@KEosBZW$J^4vFx^rpNCsLYS)KW*SkZ_sY#X@aOW3U?;UmtnsF1|f&vt3YhM z{X^z)H!i1%&LK%*yqpK5qR?u7@;Bu1kLH1ISXClN+Txf*Ph|aewpOCwI|9ju4+w?m z1TP``BUE&6oMz|O(I=U6kDg`O)W;lsNx}k=+-t3?No&6A@oWQxb#25^cTa+jxh7BW zSE>yTGD;7zmq;qHzZcJj5t_@uIG!91an21iKWdf*63dY}=TBA28rZGiOc`(f?!hd! ztD`XxVLRKyT+Wo*11v7Q>zAH#XETm@0kkGczZC2xU3qqx3bb5P@a*!H&f1_ZRoxGy@sao6h!#;(U zxu5j|#p)AR7qc6+A~~WRSg*|`0qypJu6Ypze+bOF==P??n-!jA8gs zQ)TrpZ-7Ou(u+*eMquXhs;}s6(_Sm^svjFu6>wLveUkgIg*$*LTT^y_fYQ+$5WS9r zZzPkuy$)NKE~`5Of{tT8dpwcbe!%l}mv}w(C7zII>(+hoz@rxtqv0NTP>}G9)8{op zdb$(!e$CboO1*(C4sVLDMNgB(HK|;jzYUC7D48x05GLz0^`T&mEhJq**7X%DoVt1V-dvX(D?#rW##zSy}ed{60;@42p4pNQTm?~|U9 zpGi&=B>}V{BYvda&+Ke7{BLL*uC(^Y9<6F}y6yth|4(EFp3V-oq)g#Nr*Q0kj|1r9LYU=)enJ84sNP$iBvj!`;ml#CD1l32KMxMC`fV`8 zV|+WritK)Pf`WC*M;GI2OD8*~7Ec#lWvpamk@gf~t3hc{_wYYf$-#NxlQaJNLxu|; zF%176ia%xKzZZCUNk=fV9_gQ>gz7q@JDJe;xlkI1V)uS*?x@x0!sH|pg#yjBlSKG* zgF4k{@7G_wv_g5FZJ7w(AILZv z6o_@-dc!8kz1#%FEVETKKPmOOxpuJUM#bV*wE~SgHh^gmfch)r=u*O(7dW5O>PPp z$_p1e+di@0qoztx$WfiRLwH9GJ1i$KetR4Z49XiSZ?&R_!*bfFnT#dTknj@2{+^%@ zF?nB~rQx|B{Z)?1drci^clmSo`uWQb>wd9!u+J=cUJ?FsPJ)I*R(B2Kjr?B~)xQg##%_EWH1VblPoza4t_ZP*PGNlc7eU^ll` zHv;2S=(iZqW1h$G2umo^8T5-xK1cY7fe zJmkonh&wFlBr9g2>m_YW-jnrjfyB0U5v+9IfolfcSN)>HgMVLRD<+R}gn%(a(7n;| z%QeW*ejH@$xcTQ7X9y|(zfV0hP`Z1YWW2=IFY%=<&K}8g2%t(u(77@VXiV~pmPSw; zjF*JnIkv*(SGWX`I(f@gdH!u8YxOHPJU9QagBKF97GX*QB{!>&pL2Jg0rqHN!1?j0 zzb%^%e_qZ@zjjffhJ}5gW<*$h!s%LnwGHRU{l0<%i;+uJSJz7k$$4ZvMsF;iKjM25 zW~MDJpH6%7)}|o0$@ArKIon10n91}9C=w=(EB}L6z-+&oSRq!P0(Xtc!w>xes}1A2 z1o_-Qe-x-1_~Mp9GpX+#qV|Bzlz1!Oz2}d)+nu(~KyUkFBiC&DZhQZv8xQ!aEZ=+a{E2~pa}o6jp3-M?nhjFOfmp#`WJ%vrC1s+0$aazg)Jv#n zg**sBIX}Mh1;YW<4~x}sltRI@YH%(H5Z2nDhN?0i$s+?6ZzA=w+%$spl2e{wpW&Sy z^7G0C888N?-Z|?5hS7b_Z7G+jK}w;g(ID2R+EWI-PsD#uRpJmyr!$??OthHcm6fg7 z8%-UilxhYeW1w0ehoa1gwdbFN>Un@T2_Xdbr?|NlChOeVUiR3iWZ}EzE*O zrIWAMZ7@^Jm?AQAmvM9gkvCeP`S=;qp)tQ(hqez2+9VjX45c(H#M`T;F9)CApiokY z^fy*jL%!juyx;%$Id{kg!5L37-Oc(BNLCtrhw#4V&0sN4x6zb-@QUqd?>d(D@vh)l zWXUW_eb0GK!r{+3whD1VX{0EPQ>C;|Y!;r6(X$ik_I+{w)t^GAe+~4A{USlrF&$es z|MueD|FI&pI-E^sI{aQ@;OiZwzi*)lcg{32FlK|@ zmiOq;hm84xmZbMa@1a*yHD@C+U~u%#!Il zO8#LY+kS%#(YW9E$CMCEw8+|Le{5tB^D|nFMx~F*dkd-w)z(Jx6rBBmp=#E?MYcxi z=pXOH=SE4uGlMlbalp5ABANF}V>ZaiHV`Wy8t}J7HL-{lF+%NZnc*LH5H{rV+ zjM;bC=!N)91Cg*vdVEw?-qX3lWX=#69^C_M0%1<|7=kPK7y5VOMB2fFR~Kc0rp*gp z1H#)LHh8s8aqMN&`zqS7i}cZ519iSDBVnR_IY+l<(c9f=pVK50QSzN?*5?(f`>}jy z(YYYYm$5oLl1iyoJlXBvqw_K5r?5*9iPvtVR!fRd{Q{2e@E^t|Np`pAG*(A`rn>V8 z`{|rG6}M*~3xA2Fz8;kB%TqusLK9XY&M3c>kibz&7(`I)--(o;!NyE2=O2RlS`}%G z6PVffF0~n<#ToKBn21(Ots(K)(~tTWV6>J;RIzEHzl^&nLy)LG;gbTh7}m3B$?31I zzG61fuDFSthfp+iw}Q9GgV(p>mW)>sP5sO0V>xcpUd}I_Ginu&1na)xGn>s$^JR_S@$0+Ot@-dh34aX2QPIi3HMF+d8z5}X`?%SO)Z#w6}Gu!_MP0tm+ zn+yR#zKS1r(~0XKLdtu^L)@H!&w-{^fiRpFdP$nIttpU`wks)L1AJM!XTX-UC=xRP zuZ6|MtwLlGOPWqNh@U3BiB3$vJ@VlHMnC-)X#hdW(<|rTq?V}AO)VIf_gt^Zec`Pu zw&8jc+z^DoX2XdeSmcla`E7=isp{WG&Eq4cFVj?%serlJb7e8 zc<>|NN`H-eAQcshaiXdWK<-S(L@T)P+-W3_w~z^+W#^oQ;V zfvX{MS3nS8YLsY>h$@cy%yx`B_2y~sruU}=#UxAsGk@3g!RGKng-Q(-DegckE)P!O zr)W|;?yH@J)@%Ssr{|V0mXjj!0O-v8pum_*9Q;t0=U5>iRyt0?rn&L6FCHRG&ae8ove~YWmhb9?L|#T?EbazrEQh{ck^Zr@ z2Li&ivcd!qp8)rML8gpT`@&e1WjH^{~ zUku?Bk2qq2yC&5SBDdLqgSaBFV9d_Ep9T16tZyV8(;O?|U4n-Huu5&DKrIgBW=;He zK1q$^m%7x)xQ!_Bd*L8rz68LM0NRf*@{W}T4~51h%aNGwAz^aa{hXGzY*+-S! z)ZXAP+AeaHU8aOKQ?fW`{MQXpI)OE#=XdvAATh!On02!{o2Xk7&S@=sUF45} zhG+;_&fI|sK74x0>~0AuJ?^n^ffJyTRq>qQz_3*U3^&FdHO{#($wJ1jH*rrC-*D(Y z8;C3guu$Wo4B~s#d&mAX!R6Z@GL&h`c)%U{5L!d5tibJjimO@U!2P3e&e#0lA-H%Q zAEqO~2p$qrG8lWe8VR|UoMOqqofPHNjJBdtR75}t;)~QOak;ZTVO9`xa&WavSiJ%d z?#tAu`}KK{2-t$HskH<32*CQ*c~&S;+z;ZAot&y1>%fmN#brK)+yWQzOcrWRWKj{hdO9aRax`a7SHd6g$qvy8aY(Uwio z=`<=})q9Sg0EknglF{5!E&l-b`8f=R#CUNlcYmcPTjIB+I4|F%&255XaJ*B8Li479 zODI_JtP;+4010*`reu2o!VLRa9$G;@l1AcAg4=71TU3`go1tN7m;)a7Kz%Su_oMzRT4oL?wcI!_G<9N&H6(<;>rZ*=b%G z1aL==srF}ZCJeYe7by6i(a4&L+-b=##+5Me8{-JIMH49rlu&*ZxgffD?z8L6ecANU zlsg1Q;DLAC%y-UMR^)_X|L1~j`Q(dTe!(iN7K}3hh+dr^-N6CbOs;JiMiu(qxE>70C kv);!mj;4+NetpA>8vEOCV$KsB@Q0_V_C&Q>`C0h?0m1h=_y7O^ literal 0 HcmV?d00001 diff --git a/src/geometry/manhattan-mst-sweep-line-1.png b/src/geometry/manhattan-mst-sweep-line-1.png new file mode 100644 index 0000000000000000000000000000000000000000..548f9c3524dd4b6bdff19a656f719679d5f33d15 GIT binary patch literal 85072 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 Hu?+iPt8@Mx literal 0 HcmV?d00001 diff --git a/src/geometry/manhattan-mst-sweep-line-2.png b/src/geometry/manhattan-mst-sweep-line-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc349548db9196eead3e73065ec8db03d5e3264 GIT binary patch literal 69362 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�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 F{{cfg`t1M! literal 0 HcmV?d00001 diff --git a/src/geometry/manhattan-mst-uniqueness.png b/src/geometry/manhattan-mst-uniqueness.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4f263d950e5beb1cf1c3bf170856ef15f4d378 GIT binary patch literal 16233 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 U{J?{IfPjUlDQPLz%UebKFP=s-EdT%j literal 0 HcmV?d00001 From cce148f3857c82ed10facb15b705038f0e872683 Mon Sep 17 00:00:00 2001 From: Gabriel Ribeiro Paiva Date: Fri, 14 Jun 2024 12:54:48 -0300 Subject: [PATCH 06/19] feat: add introduction about Chebyshev and Manhattan distances --- src/geometry/manhattan-distance.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index a448c3717..7f9289d88 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -56,6 +56,23 @@ for(int msk=0;msk < (1< Date: Sun, 16 Jun 2024 15:56:34 +0200 Subject: [PATCH 07/19] fix octant name to NNE --- src/geometry/manhattan-distance.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 7f9289d88..0dcfe6135 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -95,8 +95,8 @@ Therefore, the main question is how to find the nearest neighbor in each octant ## Nearest Neighbor in each Octant in $O(n\log{n})$ -For simplicity we focus on the north-east octant. All other directions can be found with the same algorithm by rotating the input. - +For simplicity we focus on the NNE octant ($R_1$ in the image above). All other directions can be found with the same algorithm by rotating the input. + We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". We add the images below to help visualize the algorithm. ![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png) @@ -106,14 +106,14 @@ We will use a sweep-line approach. We process the points from south-west to nort ![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png) *In this image we see the active set after processing the point $p$. Note that the $2$ green points of the previous image had $p$ in its north-north-east octant and are not in the active set anymore, because they already found their nearest neighbor.* -When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. +When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. -The next question is how to efficiently find which points $s$ have $p$ in the north-east octant. That is, which points $s$ satisfy: +The next question is how to efficiently find which points $s$ have $p$ in the north-north-east octant. That is, which points $s$ satisfy: - $x_s \leq x_p$ - $x_p - y_p < x_s - y_s$ -Because no points in the active set are in the $R_1$ of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. +Because no points in the active set are in the $R_1$ region of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. You can try to visualize this on the images above by thinking of the ordering of $x - y$ as a "sweep-line" that goes from the north-west to the south-east, so perpendicular to the one that is drawn. From eec9d8ef5ea95c45235af63133de611a436d1e7d Mon Sep 17 00:00:00 2001 From: Gabriel Ribeiro Paiva Date: Wed, 26 Jun 2024 19:20:58 -0300 Subject: [PATCH 08/19] feat: add problems to manhattan distance article --- src/geometry/manhattan-distance.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 0dcfe6135..a12bdbcb7 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -160,3 +160,11 @@ vector > manhattan_mst_edges(vector ps){ return edges; } ``` + +## Problems + * [AtCoder Beginner Contest 178E Dist Max](https://atcoder.jp/contests/abc178/tasks/abc178_e) + * [CodeForces 1093G Multidimensional Queries](https://codeforces.com/contest/1093/problem/G) + * [CodeForces 944F Game with Tokens](https://codeforces.com/contest/944/problem/F) + * [AtCoder Code Festival 2017D Four Coloring](https://atcoder.jp/contests/code-festival-2017-quala/tasks/code_festival_2017_quala_d) + * [The 2023 ICPC Asia EC Regionals Online Contest (I) Problem J Minimum Manhattan Distance](https://codeforces.com/gym/104639/problem/J) + * [Petrozavodsk Winter Training Camp 2016 Contest 4](https://codeforces.com/group/eqgxxTNwgd/contest/100959/attachments), Problem B Airports From a9945c7c887f76a4e9a83317734f9b3a22da82ca Mon Sep 17 00:00:00 2001 From: NaimSS Date: Sun, 30 Jun 2024 17:58:43 +0200 Subject: [PATCH 09/19] center images --- src/geometry/manhattan-distance.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index a12bdbcb7..ebfe8116c 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -12,7 +12,7 @@ $d(p,q) = |p.x - q.x| + |p.y - q.y|$ This is informally know as the [Manhattan distance, or taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry), because we can think of the points as being intersections in a well designed city, like manhattan, where you can only move on the streets, as shown in the image below: -![Manhattan Distance](https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Manhattan_distance.svg/220px-Manhattan_distance.svg.png) +
![Manhattan Distance](https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Manhattan_distance.svg/220px-Manhattan_distance.svg.png)
This images show some of the smallest paths from one black point to the other, all of them with distance $12$. @@ -80,14 +80,14 @@ Also, we may realize that $\alpha$ is a [spiral similarity](https://en.wikipedia The Manhattan MST problem consists of, given some points in the plane, find the edges that connect all the points and have a minimum total sum of weights. The weight of an edge that connects two points is their Manhattan distance. For simplicity, we assume that all points have different locations. Here we show a way of finding the MST in $O(n \log{n})$ by finding for each point its nearest neighbor in each octant, as represented by the image below. This will give us $O(n)$ candidate edges, which will guarantee that they contain the MST. The final step is then using some standard MST, for example, [Kruskal algorithm using disjoint set union](https://cp-algorithms.com/graph/mst_kruskal_with_dsu.html). -![8 octants picture](manhattan-mst-octants.png) +
![8 octants picture](manhattan-mst-octants.png)
*The 8 octants relative to a point S* The algorithm show here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. They both have the same complexity, but the one presented here is easier to implement and has a lower constant factor. First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point $s$ and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove this, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The image below give some intuition on why this is true. -![unique nearest neighbor](manhattan-mst-uniqueness.png) +
![unique nearest neighbor](manhattan-mst-uniqueness.png)
*We can build some intuition that limitation of the octant make it impossible that $s$ is closer to both $p$ and $q$ then each other* @@ -99,11 +99,11 @@ For simplicity we focus on the NNE octant ($R_1$ in the image above). All other We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". We add the images below to help visualize the algorithm. -![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png) +
![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png)
*In black with an arrow you can see the direction of the line-sweep. All the points below this lines are in the active set, and the points above are still not processed. In green we see the points which are in the octant of the processed point. In red the points that are not in the searched octant.* -![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png) +
![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png)
*In this image we see the active set after processing the point $p$. Note that the $2$ green points of the previous image had $p$ in its north-north-east octant and are not in the active set anymore, because they already found their nearest neighbor.* When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. From 92455f3959b2e02623871d4d26a2c70b04d4ea39 Mon Sep 17 00:00:00 2001 From: Gabriel Ribeiro Paiva Date: Sun, 30 Jun 2024 14:19:20 -0300 Subject: [PATCH 10/19] feat: add image to visualize rotating points --- src/geometry/chebyshev-transformation.png | Bin 0 -> 163326 bytes src/geometry/manhattan-distance.md | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 src/geometry/chebyshev-transformation.png diff --git a/src/geometry/chebyshev-transformation.png b/src/geometry/chebyshev-transformation.png new file mode 100644 index 0000000000000000000000000000000000000000..bcad9616fcfdedc46e06eb2102d14af45f30f0ce GIT binary patch literal 163326 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 c}T?y4xz{jY90rNI%+ze_QT4dbOqC zI%9r|W6s=+>5k+czj8_yyT5B?79Nzr(|Y-2u~Qt_wN$h7CApxc^PXFHv|d3-nia+)zG?`KkYDn<0=7^xGid-7hHZf z0@>2O^q9N)r_NE~dz`--HLkWEm_c`T+N^dx{eC~~MVOO>@Iuz<niUa`5bOtMH3Y9hshB|p(P-p;cd|0OiY!xtYN`t|mj?(j1 z_dqFLMt&^3IjrpJj3=M~`Tq+ANGLF2^vY)y>HjnnH1}MfI?N+ra)ssX#d@)Zrxg}k zfRph`tP72Z0}C6FalI{e7~WMzXVjCU`=9;>`x%g5;r8a4!Ta+n`mukzyueM2X0n3v z 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℘f$<`2>UpAnfb1WQx>S&cB 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
XobD2F<;NPVkJz5(o#G92Uvc-nQ@~ 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 literal 0 HcmV?d00001 diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index ebfe8116c..26170d17d 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -74,6 +74,9 @@ the Manhattan distance between the points $p$ and $q$ turns into the Chebyshev d Also, we may realize that $\alpha$ is a [spiral similarity](https://en.wikipedia.org/wiki/Spiral_similarity) (rotation of the plane followed by a dilation about a center $O$) with center $(0, 0)$, rotation angle of $45^{\circ}$ in clockwise direction and dilation by $\sqrt{2}$. +Here's an image to help visualizing the transformation: + +
![Chebyshev transformation](chebyshev-transformation.png)
## Manhattan Minimum Spanning Tree From e17acdd4ed001f3e5a59986ff46a9f196fa54295 Mon Sep 17 00:00:00 2001 From: NaimSS Date: Sun, 7 Jul 2024 07:32:30 +0100 Subject: [PATCH 11/19] update name of snippet --- src/geometry/manhattan-distance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 26170d17d..fa216220b 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -133,7 +133,7 @@ In summary we: Below you can find a implementation, based on the one from [KACTL](https://github.com/kth-competitive-programming/kactl/blob/main/content/geometry/ManhattanMST.h). -```{.cpp file=manhattan_mst.cpp} +```{.cpp file=manhattan_mst} // Returns a list of edges in the format (weight, u, v). // Passing this list to Kruskal algorithm will give the Manhattan MST. vector > manhattan_mst_edges(vector ps){ From 0b3ff55e51f271d49cc0abfd913238a74691d422 Mon Sep 17 00:00:00 2001 From: NaimSS Date: Sun, 7 Jul 2024 07:37:31 +0100 Subject: [PATCH 12/19] update test name/add point struct in snippet --- src/geometry/manhattan-distance.md | 4 ++++ test/{manhattan_mst.cpp => test_manhattan_mst.cpp} | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) rename test/{manhattan_mst.cpp => test_manhattan_mst.cpp} (98%) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index fa216220b..32e9a95c7 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -134,6 +134,10 @@ In summary we: Below you can find a implementation, based on the one from [KACTL](https://github.com/kth-competitive-programming/kactl/blob/main/content/geometry/ManhattanMST.h). ```{.cpp file=manhattan_mst} +struct point { + long long x, y; +}; + // Returns a list of edges in the format (weight, u, v). // Passing this list to Kruskal algorithm will give the Manhattan MST. vector > manhattan_mst_edges(vector ps){ diff --git a/test/manhattan_mst.cpp b/test/test_manhattan_mst.cpp similarity index 98% rename from test/manhattan_mst.cpp rename to test/test_manhattan_mst.cpp index c408f0833..eb62c9756 100644 --- a/test/manhattan_mst.cpp +++ b/test/test_manhattan_mst.cpp @@ -2,10 +2,6 @@ using namespace std; #include "manhattan_mst.h" -struct point { - int x, y; -}; - struct DSU { int n; vector p, ps; From d41258abf982a69bcca21f038ed94727dec23175 Mon Sep 17 00:00:00 2001 From: NaimSS <55881611+NaimSS@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:50:37 -0300 Subject: [PATCH 13/19] Apply suggestions from code review Thanks for the reply. I will do the other requested changes separately. Co-authored-by: Oleksandr Kulkov --- src/geometry/manhattan-distance.md | 97 +++++++++++++++--------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 32e9a95c7..96ecb611b 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -6,32 +6,32 @@ tags: # Manhattan Distance ## Definition -Consider we have some points on a plane, and define a distance from point $p$ to $q$ as being the sum of the difference between their $x$ and $y$ coordinates: +For points $p$ and $q$ on a plane, we can define the distance between them as the sum of the differences between their $x$ and $y$ coordinates: -$d(p,q) = |p.x - q.x| + |p.y - q.y|$ +$$d(p,q) = |p.x - q.x| + |p.y - q.y|$$ -This is informally know as the [Manhattan distance, or taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry), because we can think of the points as being intersections in a well designed city, like manhattan, where you can only move on the streets, as shown in the image below: +Defined this way, the distance corresponds to the so-called [Manhattan (taxicab) geometry](https://en.wikipedia.org/wiki/Taxicab_geometry), in which the points are considered intersections in a well designed city, like Manhattan, where you can only move on the streets horizontally or vertically, as shown in the image below:
![Manhattan Distance](https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Manhattan_distance.svg/220px-Manhattan_distance.svg.png)
-This images show some of the smallest paths from one black point to the other, all of them with distance $12$. +This images show some of the smallest paths from one black point to the other, all of them with length $12$. -There are some interseting tricks and algorithms that can be done with this distance, and we will show some of them here. +There are some interesting tricks and algorithms that can be done with this distance, and we will show some of them here. -## Farthest pair of points in Manhattan Distance +## Farthest pair of points in Manhattan distance -Given $n$ points $P$, we want to find the pair of points $p,q$ that are farther apart, that is, maximize $d(p, q) = |p.x - q.x| + |p.y - q.y|$. +Given $n$ points $P$, we want to find the pair of points $p,q$ that are farther apart, that is, maximize $|p.x - q.x| + |p.y - q.y|$. -Let's think first in one dimension, so $y=0$. The main observation is that we can bruteforce if $|p.x - q.x|$ is equal to $p.x - q.x$ or $-p.x + q.x$, because if we "miss the sign" of the absolute value, we will get only a smaller value, so it can't affect the answer. More formally, we have that: +Let's think first in one dimension, so $y=0$. The main observation is that we can bruteforce if $|p.x - q.x|$ is equal to $p.x - q.x$ or $-p.x + q.x$, because if we "miss the sign" of the absolute value, we will get only a smaller value, so it can't affect the answer. More formally, it holds that: -$|p.x - q.x| = max(p.x - q.x, -p.x + q.x)$ +$$|p.x - q.x| = \max(p.x - q.x, -p.x + q.x)$$ -So for example, we can try to have $p$ such that $p.x$ has the plus sign, and then $q$ must have the negative sign. This way we want to find: -$max_{p, q \in P}(p.x + (-q.x)) = max_{p \in P}(p.x) + max_{q \in P}( - q.x )$. +So, for example, we can try to have $p$ such that $p.x$ has the plus sign, and then $q$ must have the negative sign. This way we want to find: +$$\max\limits_{p, q \in P}(p.x + (-q.x)) = \max\limits_{p \in P}(p.x) + \max\limits_{q \in P}( - q.x ).$$ Notice that we can extend this idea further for 2 (or more!) dimensions. For $d$ dimensions, we must bruteforce $2^d$ possible values of the signs. For example, if we are in $2$ dimensions and bruteforce that $p$ has both the plus signs we want to find: -$max_{p, q \in P} (p.x + (-q.x)) + (p.y + (-q.y)) = max_{p \in P}(p.x + p.y) + max_{q \in P}(-q.x - q.y)$. +$$\max\limits_{p, q \in P} (p.x + (-q.x)) + (p.y + (-q.y)) = \max\limits_{p \in P}(p.x + p.y) + \max\limits_{q \in P}(-q.x - q.y).$$ As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that maximize the expression. @@ -39,12 +39,12 @@ The code below generalizes this to $d$ dimensions and runs in $O(n \cdot 2^d \cd ```cpp long long ans = 0; -for(int msk=0;msk < (1<![8 octants picture](manhattan-mst-octants.png) -*The 8 octants relative to a point S* +
![8 octants picture](manhattan-mst-octants.png) -The algorithm show here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. They both have the same complexity, but the one presented here is easier to implement and has a lower constant factor. +*The 8 octants relative to a point S*
-First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point $s$ and any two other points $p$ and $q$ in the same octant, $dist(p, q) < max(dist(s, p), dist(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove this, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The image below give some intuition on why this is true. +The algorithm shown here was first presented in a paper from [H. Zhou, N. Shenoy, and W. Nichollos (2002)](https://ieeexplore.ieee.org/document/913303). There is also another know algorithm that uses a Divide and conquer approach by [J. Stolfi](https://www.academia.edu/15667173/On_computing_all_north_east_nearest_neighbors_in_the_L1_metric), which is also very interesting and only differ in the way they find the nearest neighbor in each octant. They both have the same complexity, but the one presented here is easier to implement and has a lower constant factor. -
![unique nearest neighbor](manhattan-mst-uniqueness.png)
-*We can build some intuition that limitation of the octant make it impossible that $s$ is closer to both $p$ and $q$ then each other* +First, let's understand why it is enough to consider only the nearest neighbor in each octant. The idea is to show that for a point $s$ and any two other points $p$ and $q$ in the same octant, $d(p, q) < \max(d(s, p), d(s, q))$. This is important, because it shows that if there was a MST where $s$ is connected to both $p$ and $q$, we could erase one of these edges and add the edge $(p,q)$, which would decrease the total cost. To prove this, we assume without loss of generality that $p$ and $q$ are in the octanct $R_1$, which is defined by: $x_s \leq x$ and $x_s - y_s > x - y$, and then do some casework. The image below give some intuition on why this is true. + +
![unique nearest neighbor](manhattan-mst-uniqueness.png) + +*Intuitively, the limitation of the octant makes it impossible that $p$ and $q$ are both closer to $s$ than to each other*
Therefore, the main question is how to find the nearest neighbor in each octant for every single of the $n$ points. @@ -102,21 +104,22 @@ For simplicity we focus on the NNE octant ($R_1$ in the image above). All other We will use a sweep-line approach. We process the points from south-west to north-east, that is, by non-decreasing $x + y$. We also keep a set of points which don't have their nearest neighbor yet, which we call "active set". We add the images below to help visualize the algorithm. -
![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png)
+
![manhattan-mst-sweep](manhattan-mst-sweep-line-1.png) + +*In black with an arrow you can see the direction of the line-sweep. All the points below this lines are in the active set, and the points above are still not processed. In green we see the points which are in the octant of the processed point. In red the points that are not in the searched octant.*
-*In black with an arrow you can see the direction of the line-sweep. All the points below this lines are in the active set, and the points above are still not processed. In green we see the points which are in the octant of the processed point. In red the points that are not in the searched octant.* +
![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png) -
![manhattan-mst-sweep](manhattan-mst-sweep-line-2.png)
-*In this image we see the active set after processing the point $p$. Note that the $2$ green points of the previous image had $p$ in its north-north-east octant and are not in the active set anymore, because they already found their nearest neighbor.* +*In this image we see the active set after processing the point $p$. Note that the $2$ green points of the previous image had $p$ in its north-north-east octant and are not in the active set anymore, because they already found their nearest neighbor.*
-When we add a new point point $p$, for every point $s$ that has it in it's octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. +When we add a new point point $p$, for every point $s$ that has it in its octant we can safely assign $p$ as the nearest neighbor. This is true because their distance is $d(p,s) = |x_p - x_s| + |y_p - y_s| = (x_p + y_p) - (x_s + y_s)$, because $p$ is in the north-north-east octant. As all the next points will not have a smaller value of $x + y$ because of the sorting step, $p$ is guaranteed to have the smaller distance. We can then remove all such points from the active set, and finally add $p$ to the active set. The next question is how to efficiently find which points $s$ have $p$ in the north-north-east octant. That is, which points $s$ satisfy: - $x_s \leq x_p$ - $x_p - y_p < x_s - y_s$ -Because no points in the active set are in the $R_1$ region of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. +Because no points in the active set are in the $R_1$ region of another, we also have that for two points $q_1$ and $q_2$ in the active set, $x_{q_1} \neq x_{q_2}$ and their ordering implies $x_{q_1} < x_{q_2} \implies x_{q_1} - y_{q_1} \leq x_{q_2} - y_{q_2}$. You can try to visualize this on the images above by thinking of the ordering of $x - y$ as a "sweep-line" that goes from the north-west to the south-east, so perpendicular to the one that is drawn. @@ -126,7 +129,7 @@ This means that if we keep the active set ordered by $x$ the candidates $s$ are In summary we: - Sort the points by $x + y$ in non-decreasing order; -- For every point, we iterate over the active set starting with the point with the largest $x$ such that $x \leq x_p$, and we break the loop if $x_p - y_p \geq x_s - y_s$. For every valid point $s$ we add the edge $(s,p, dist(s,p))$ in our list; +- For every point, we iterate over the active set starting with the point with the largest $x$ such that $x \leq x_p$, and we break the loop if $x_p - y_p \geq x_s - y_s$. For every valid point $s$ we add the edge $(s,p, d(s,p))$ in our list; - We add the point $p$ to the active set; - Rotate the points and repeat until we iterate over all the octants. - Apply Kruskal algorithm in the list of edges to get the MST. @@ -140,27 +143,27 @@ struct point { // Returns a list of edges in the format (weight, u, v). // Passing this list to Kruskal algorithm will give the Manhattan MST. -vector > manhattan_mst_edges(vector ps){ +vector> manhattan_mst_edges(vector ps) { vector ids(ps.size()); iota(ids.begin(), ids.end(), 0); - vector > edges; - for(int rot = 0; rot < 4; rot++){ // for every rotation - sort(ids.begin(), ids.end(), [&](int i,int j){ + vector> edges; + for (int rot = 0; rot < 4; rot++) { // for every rotation + sort(ids.begin(), ids.end(), [&](int i, int j){ return (ps[i].x + ps[i].y) < (ps[j].x + ps[j].y); }); - map > active; // (xs, id) - for(auto i : ids){ - for(auto it = active.lower_bound(ps[i].x); it != active.end(); - active.erase(it++)){ + map> active; // (xs, id) + for (auto i : ids) { + for (auto it = active.lower_bound(ps[i].x); it != active.end(); + active.erase(it++)) { int j = it->second; - if(ps[i].x - ps[i].y > ps[j].x - ps[j].y)break; + if (ps[i].x - ps[i].y > ps[j].x - ps[j].y) break; assert(ps[i].x >= ps[j].x && ps[i].y >= ps[j].y); edges.push_back({(ps[i].x - ps[j].x) + (ps[i].y - ps[j].y), i, j}); } active[ps[i].x] = i; } - for(auto &p : ps){ // rotate - if(rot&1)p.x *= -1; + for (auto &p : ps) { // rotate + if (rot & 1) p.x *= -1; else swap(p.x, p.y); } } @@ -169,9 +172,9 @@ vector > manhattan_mst_edges(vector ps){ ``` ## Problems - * [AtCoder Beginner Contest 178E Dist Max](https://atcoder.jp/contests/abc178/tasks/abc178_e) - * [CodeForces 1093G Multidimensional Queries](https://codeforces.com/contest/1093/problem/G) - * [CodeForces 944F Game with Tokens](https://codeforces.com/contest/944/problem/F) - * [AtCoder Code Festival 2017D Four Coloring](https://atcoder.jp/contests/code-festival-2017-quala/tasks/code_festival_2017_quala_d) - * [The 2023 ICPC Asia EC Regionals Online Contest (I) Problem J Minimum Manhattan Distance](https://codeforces.com/gym/104639/problem/J) - * [Petrozavodsk Winter Training Camp 2016 Contest 4](https://codeforces.com/group/eqgxxTNwgd/contest/100959/attachments), Problem B Airports + * [AtCoder Beginner Contest 178E - Dist Max](https://atcoder.jp/contests/abc178/tasks/abc178_e) + * [CodeForces 1093G - Multidimensional Queries](https://codeforces.com/contest/1093/problem/G) + * [CodeForces 944F - Game with Tokens](https://codeforces.com/contest/944/problem/F) + * [AtCoder Code Festival 2017D - Four Coloring](https://atcoder.jp/contests/code-festival-2017-quala/tasks/code_festival_2017_quala_d) + * [The 2023 ICPC Asia EC Regionals Online Contest (I) - J. Minimum Manhattan Distance](https://codeforces.com/gym/104639/problem/J) + * [Petrozavodsk Winter Training Camp 2016 Contest 4 - B. Airports](https://codeforces.com/group/eqgxxTNwgd/contest/100959/attachments) From bb43af1549c1e0388fad94de066dd866acca2c5b Mon Sep 17 00:00:00 2001 From: NaimSS Date: Fri, 12 Jul 2024 12:05:29 -0300 Subject: [PATCH 14/19] New article to read-me --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 72ec3bee7..fb25e3a4b 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Compiled pages are published at [https://cp-algorithms.com/](https://cp-algorith ### New articles +- (12 July 2024) [Manhattan distance Problems](https://cp-algorithms.com/geometry/manhattan-distance.html) - (8 June 2024) [Knapsack Problem](https://cp-algorithms.com/dynamic_programming/knapsack.html) - (28 January 2024) [Introduction to Dynamic Programming](https://cp-algorithms.com/dynamic_programming/intro-to-dp.html) - (8 December 2023) [Hungarian Algorithm](https://cp-algorithms.com/graph/hungarian-algorithm.html) From d2b6f4ac8a26ed386826e80cb58d4ec5de6051d5 Mon Sep 17 00:00:00 2001 From: NaimSS Date: Fri, 12 Jul 2024 12:08:21 -0300 Subject: [PATCH 15/19] make it lowercase --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fb25e3a4b..0f426fd3a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Compiled pages are published at [https://cp-algorithms.com/](https://cp-algorith ### New articles -- (12 July 2024) [Manhattan distance Problems](https://cp-algorithms.com/geometry/manhattan-distance.html) +- (12 July 2024) [Manhattan distance problems](https://cp-algorithms.com/geometry/manhattan-distance.html) - (8 June 2024) [Knapsack Problem](https://cp-algorithms.com/dynamic_programming/knapsack.html) - (28 January 2024) [Introduction to Dynamic Programming](https://cp-algorithms.com/dynamic_programming/intro-to-dp.html) - (8 December 2023) [Hungarian Algorithm](https://cp-algorithms.com/graph/hungarian-algorithm.html) From 95201030cb7a7aeacbf234df637e02d78b8056c1 Mon Sep 17 00:00:00 2001 From: Oleksandr Kulkov Date: Fri, 12 Jul 2024 17:17:25 +0200 Subject: [PATCH 16/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f426fd3a..b9c6c64b7 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Compiled pages are published at [https://cp-algorithms.com/](https://cp-algorith ### New articles -- (12 July 2024) [Manhattan distance problems](https://cp-algorithms.com/geometry/manhattan-distance.html) +- (12 July 2024) [Manhattan distance](https://cp-algorithms.com/geometry/manhattan-distance.html) - (8 June 2024) [Knapsack Problem](https://cp-algorithms.com/dynamic_programming/knapsack.html) - (28 January 2024) [Introduction to Dynamic Programming](https://cp-algorithms.com/dynamic_programming/intro-to-dp.html) - (8 December 2023) [Hungarian Algorithm](https://cp-algorithms.com/graph/hungarian-algorithm.html) From 257340c6bf467408cd907edc8fddb19365c5ddd3 Mon Sep 17 00:00:00 2001 From: Oleksandr Kulkov Date: Fri, 12 Jul 2024 17:19:19 +0200 Subject: [PATCH 17/19] Update src/geometry/manhattan-distance.md --- src/geometry/manhattan-distance.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index 96ecb611b..e1d35c1a8 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -27,6 +27,7 @@ Let's think first in one dimension, so $y=0$. The main observation is that we ca $$|p.x - q.x| = \max(p.x - q.x, -p.x + q.x)$$ So, for example, we can try to have $p$ such that $p.x$ has the plus sign, and then $q$ must have the negative sign. This way we want to find: + $$\max\limits_{p, q \in P}(p.x + (-q.x)) = \max\limits_{p \in P}(p.x) + \max\limits_{q \in P}( - q.x ).$$ Notice that we can extend this idea further for 2 (or more!) dimensions. For $d$ dimensions, we must bruteforce $2^d$ possible values of the signs. For example, if we are in $2$ dimensions and bruteforce that $p$ has both the plus signs we want to find: From dbeaafeb22ae40f16d0286275eda65d1329b4f11 Mon Sep 17 00:00:00 2001 From: Oleksandr Kulkov Date: Fri, 12 Jul 2024 17:20:30 +0200 Subject: [PATCH 18/19] Update src/geometry/manhattan-distance.md --- src/geometry/manhattan-distance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index e1d35c1a8..e70a60eee 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -32,7 +32,7 @@ $$\max\limits_{p, q \in P}(p.x + (-q.x)) = \max\limits_{p \in P}(p.x) + \max\lim Notice that we can extend this idea further for 2 (or more!) dimensions. For $d$ dimensions, we must bruteforce $2^d$ possible values of the signs. For example, if we are in $2$ dimensions and bruteforce that $p$ has both the plus signs we want to find: -$$\max\limits_{p, q \in P} (p.x + (-q.x)) + (p.y + (-q.y)) = \max\limits_{p \in P}(p.x + p.y) + \max\limits_{q \in P}(-q.x - q.y).$$ +$$\max\limits_{p, q \in P} [(p.x + (-q.x)) + (p.y + (-q.y))] = \max\limits_{p \in P}(p.x + p.y) + \max\limits_{q \in P}(-q.x - q.y).$$ As we made $p$ and $q$ independent, it is now easy to find the $p$ and $q$ that maximize the expression. From e369c417767c020bd9b024880e0b82924a47ff4b Mon Sep 17 00:00:00 2001 From: Oleksandr Kulkov Date: Fri, 12 Jul 2024 17:23:34 +0200 Subject: [PATCH 19/19] Update src/geometry/manhattan-distance.md --- src/geometry/manhattan-distance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/geometry/manhattan-distance.md b/src/geometry/manhattan-distance.md index e70a60eee..a2decf86e 100644 --- a/src/geometry/manhattan-distance.md +++ b/src/geometry/manhattan-distance.md @@ -99,7 +99,7 @@ First, let's understand why it is enough to consider only the nearest neighbor i Therefore, the main question is how to find the nearest neighbor in each octant for every single of the $n$ points. -## Nearest Neighbor in each Octant in $O(n\log{n})$ +## Nearest Neighbor in each Octant in O(n log n) For simplicity we focus on the NNE octant ($R_1$ in the image above). All other directions can be found with the same algorithm by rotating the input. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy