g[e][t] = floors solvable with e eggs and t trials = g[e-1][t-1] + g[e][t-1] + 1. The answer is the first t where g[k][t] ≥ n. Watch the table grow one trial column at a time.
e (from k at the top down to 0); columns are trial budgets t.g[e][t] is the maximum number of floors you can fully resolve with e eggs and t trials.g[e][t] = g[e-1][t-1] + g[e][t-1] + 1 means: floors below a breaking drop (one fewer egg, one fewer trial), plus floors above a surviving drop (same eggs, one fewer trial), plus the floor you dropped from.t where the top row g[k][t] reaches or exceeds n. That t is the minimum guaranteed number of drops.2 eggs and 100 floors these are 14, 27, 39, … with each gap one smaller than the last.g[1][t] = t, so the answer equals n); set eggs = 7, floors = 100 to watch the table reach 100 in just 7 trials — the binary-search regime where extra eggs stop helping.
g[0][t] stays at 0 for every t: with no eggs you can resolve no floors.g[e][t] reads the previous trial's values — the correct update order for a rolling array.g[k-1][t*-1] + 1 above the running base, exactly the reconstruction described in senior.md.14, 13, 12, …) because each survive leaves one fewer trial, so the next safe jump is one floor smaller.k = 2 it is the smallest t with t(t+1)/2 ≥ n; for k large it is ⌈log₂(n+1)⌉.junior.md, middle.md, and professional.md for the proofs.
dp[e][f] = 1 + minₓ max(dp[e-1][x-1], dp[e][f-x]) and this dual g[e][t] = g[e-1][t-1] + g[e][t-1] + 1 compute the same answer from opposite axes:
the recurrence indexes by floors and is O(k·n²); the dual indexes by trials and is O(k·log n) because the number of trials is tiny.
The closed form g[e][t] = Σ C(t, i) for i = 1..e gives the same values, and for e = 2 it is the triangular number t(t+1)/2.