Interval Dynamic Programming: Concepts, Patterns, and Applications
Introduction
Consider a problem where N piles of stones are arranged in a line, each with a certain weight. The task is to merge these N piles into a single pile, with the constraint that only adjacent piles can be merged at each step, and the cost of each merge equals the combined weight of the two piles being merged. The objective is to find ...
Posted on Thu, 15 Oct 2026 16:18:22 +0000 by FezEvils
Dynamic Programming Solution for Coloring n x 3 Grid with Adjacent Constraints
Problem Analysis
Given an n x 3 grid, each cell must be colored with one of three colors (red, yellow, green) such that adjacent cells (sharing horizontal or vertical edges) have different colors. The goal is to count the total number of valid colorings modulo 10^9 + 7.
For a single row (n = 1), there are 12 valid colorings. As n increases, the ...
Posted on Wed, 14 Oct 2026 16:33:04 +0000 by xcandiottix
Maximizing Student Recommendations Based on Exam Scores and PAT Participation
After the "Ladder Competition" (天梯赛), a company's human resources department requested a list of outstanding student recommendations from the organizing committee. This task was assigned to "Jingjing-jie" (静静姐).
The company's recommendation process follows these criteria:
Only students scoring 175 or above in the Ladd ...
Posted on Mon, 12 Oct 2026 16:07:22 +0000 by gbow
Quadrilateral Inequality Optimization in Dynamic Programming
Quadrilateral inequality optimization represents a powerful technique for optimizing certain types of dynamic programming solutions, particularly thoce involving 2D1D state transitions.
The fundamental form of such DP equations is:
[f_{l,r}=\min_{k=l}^{r-1}{f_{l,k}+f_{k+1,r}}+w(l,r) ]
When the function w(l,r) satisfies specific properties, we c ...
Posted on Sun, 11 Oct 2026 16:31:44 +0000 by ofirf96
Identifying the Longest Palindromic Substring
Given a string s, the goal is to locate the longest cnotiguous sequence of characters that reads identically forward and backward. The input string length is capped at 1000 characters.
Problem Examples
Example 1:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid solution.
Example 2:
Input: "cbbd" ...
Posted on Sat, 10 Oct 2026 16:43:57 +0000 by maexus
Game Theory: Algorithmic Approaches to Competitive Programming Problems
AGC010F Tree Game
Let \( val[u] \) represent the number of stones located at node \( u \). A useful heuristic arises when considering a node \( u \) with a single child \( v \). If \( val[u] \le val[v] \), and the first player moves the token to \( v \), the second player can immediately move it back to \( u \). This traps the first player, lea ...
Posted on Thu, 08 Oct 2026 16:47:36 +0000 by sean72
Dynamic Programming Approach to Knapsack Problems
Knapsack Problem Overview
The knapsack problem involves selecting items with given weights and values to maximize total value within a weight cnostraint.
0/1 Knapsack
Given n items and a knapsack with maximum capacity w, where each item has a weight weight[i] and value value[i], determine which items to include to maximzie value. Each item can ...
Posted on Wed, 07 Oct 2026 16:48:03 +0000 by Blondy
Classic Knapsack Problem Variants and Implementation Patterns
01 Knapsack
Given N item types and a knapsack with capacity V. Each item can be selected at most once, with volume v[i] and value w[i]. Find the maximum total value without exceeding capacity. Constraints: 0 < N, V <= 1000; 0 < v[i], w[i] <= 1000.
The classic 01 knapsack uses a two-state transition approach: either skip the current ...
Posted on Wed, 07 Oct 2026 16:46:33 +0000 by Phoenix~Fire
Solutions for N-ary Tree Traversals, Valid Parentheses, Binary Tree Inorder, and Subsequence Counting
N-ary Tree Preorder Traversal
Given the root of an n-ary tree, return the preorder traversal of its nodes' values.
/*
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) { val = _val; }
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
}; ...
Posted on Tue, 06 Oct 2026 16:32:48 +0000 by mechamecha
Probability, Digit, and Counting Dynamic Programming Problems
OSU!
Let $E_i$ denote the expected score after the $i$-th operation. The key observation is that $(x+1)^3 - x^3 = 3x^2 + 3x + 1$. To compute this increment in expectation, maintain:
$$
\text{exp1}i = (\text{exp1}{i-1} + 1) \cdot p_i
$$
$$
\text{exp2}i = (\text{exp2}{i-1} + 2 \cdot \text{exp1}_{i-1} + 1) \cdot p_i
$$
Then update the total expect ...
Posted on Mon, 05 Oct 2026 16:47:19 +0000 by manwhoeatsrats