# LineContainer

Authors: Benjamin Qi, Andi Qu

Convex Containers

## Half-Plane Intersection

Resources | |||
---|---|---|---|

CF | |||

Petr | Expected linear time! |

### This section is not complete.

*Example problem + implementation?*

Status | Source | Problem Name | Difficulty | Tags | Solution | URL |
---|---|---|---|---|---|---|

Kattis | Normal | View Solution | ||||

JOI | Hard | View Solution | ||||

Balkan OI | Very Hard | ## Show TagsGeometry, Binary Search | External Sol |

## LineContainer (aka $\mathcal{O}(N \log N)$ CHT)

Resources | |||
---|---|---|---|

KACTL | source of code that I (Ben) use | ||

cp-algo | related topic (but not the same) |

### Example Problem

Focus Problem – read through this problem before continuing!

#### Analysis

Instead of focusing on the pillars that should be destroyed, let's instead focus on the pillars that remain.

The total cost consists of the cost due to height differences plus the cost of destroying unused pillars. The latter cost is equal to the cost to destroy all pillars minus the cost to destroy the remaining pillars.

Since the cost to destroy all pillars is constant, we can thus turn the problem into one about building pillars instead of destroying them!

From this, we get a basic DP recurrence. Let $dp[i]$ be the minimum cost to build the bridge so that the last build pillar is pillar $i$.

$dp[1] = -w_1$ and the following recurrence holds:

Notice how

effectively describes a linear function $y = mx + c$, where $m = -2h_j$, $x = h_i$, and $c = dp[j] + h_j^2$

This means that we can use CHT to compute $dp[i]$ efficiently!

However, since $m$ is not monotonic, we can't use linear CHT using a deque, so we must settle with $\mathcal{O}(N \log N)$.

Code

## Problems

Status | Source | Problem Name | Difficulty | Tags | Solution | URL |
---|---|---|---|---|---|---|

YS | Normal | View Solution | ||||

POI | Normal | ## Show TagsDP, convex | View Solution | |||

CEOI | Hard | ## Show TagsDP, convex | External Sol | |||

FHC | Hard | ## Show TagsDP, convex | Check FHC | |||

AC | Hard | Check AC | ||||

TLX | Hard | Check TLX | ||||

Old Gold | Hard | External Sol |

### Module Progress:

### Join the USACO Forum!

Stuck on a problem, or don't understand a module? Join the USACO Forum and get help from other competitive programmers!

## Give Us Feedback on LineContainer!

Leave suggestions for us by making a post on the USACO Forum! Ex: Unclear sections, mislabeled problems, etc.