Greedy Algorithms: Principles and Classic Problem Solutions
Understanding Greedy Algorithms
A greedy algorithm makes the locally optimal choice at each step with the hope of finding a global optimum. It does not guarantee a globally optimal solution for all problems, but it works well when the problem exhibits optimal substructure and the greedy choice property.
When Greedy Works—and When It Doesn’t
App ...
Posted on Thu, 22 Oct 2026 16:31:07 +0000 by howard-moore
Efficient Rating Adjustment via Segment Tree with Binary Search
This problem centers on dynamically maintaining and querying the minimum number of positive rating increments needed to offset a cumulative negative rating sum—effectively determining how many smallest available positive values must be selected (in sorted order) so their total is at least the absolute value of the negative sum.
The core insight ...
Posted on Tue, 20 Oct 2026 16:30:31 +0000 by ExpendableDecoy
Greedy Algorithm: Minimum Plank Coverage for Barn Stalls
1349. Barn Repair - AcWing
Difficulty: Medium
Time/Memory Limit: 1s / 64MB
Total Accepted: 1275
Total Submissions: 2405
Source: usaco training 1.4
Algorithm: Greedy
Problem Description
During a stormy night, strong winds damaged the roof and doors of Farmer John's barn. The stalls are arranged in a single row, and cows occup ...
Posted on Wed, 07 Oct 2026 16:12:07 +0000 by chris9902
Maximizing Sum of Minimum Edge Weights on Tree Paths
Given a tree with n nodes (≤ 10⁶) and weighted edges, define Min(x, y) as the minimum edge weight along the unique path between nodes x and y. The goal is to compute:
max_{r=1}^n Σ_{v ≠ r} Min(r, v)
A naive approach would compute the sum for each root r by traversing all paths, yielding O(n²) complexity — infeasible for large n.
Instead, revers ...
Posted on Sun, 16 Aug 2026 16:36:12 +0000 by Dasndan
Competitive Programming Problem Set Solutions
Problem T1
Problem Statement Given n team members with their individual speeds a[i] and carrying capacities w[i], determine the maximum achievable team speed where faster members can assist slower ones.
Solution Approach The key insight is that the answer exhibits monotonicity, making binary search applicable. If a target speed x can be achieve ...
Posted on Tue, 04 Aug 2026 16:22:54 +0000 by xpressmail
C++ Algorithm Solutions for Competitive Programming Challenges
1. Gymnastic Team Formation
Given the small input constraints, a brute-force approach with backtracking and pruning is suitable. The solution uses depth-first search (DFS) to explore valid permutations while eliminating invalid paths early.
#include <iostream>
using namespace std;
int constraints[11] = {0};
bool used[11] = {false};
int v ...
Posted on Fri, 31 Jul 2026 16:00:17 +0000 by rlalande
Longest Increasing Subsequence Algorithms
Longest Increasing Subsequence (LIS)
The Longest Increasing Subsequence problem involves findinng the maximum length of a strictly increasing subsequence from a given sequence of length n. The subsequence elements need not be contiguous in the original sequence.
Dynamic Programming Approach (O(n²))
State Representation
DP array: Stores the len ...
Posted on Sat, 18 Jul 2026 16:18:30 +0000 by Rebel7284
Greedy Algorithms for Interval Problems
Non-overlapping Intervals Solution
This problem shares similarities with the minimum arrrows to burst balloons problem. Two approaches exist for resolving interval overlaps:
class IntervalSolver {
public:
static bool sortStart(const vector<int>& a, const vector<int>& b) {
return a[0] < b[0];
}
int ...
Posted on Sun, 28 Jun 2026 17:00:44 +0000 by gabriel kent
Algorithmic Strategy for Maximizing Single-Transaction Stock Gains
Problem Definition
You are provided with a sequence of integers representing daily stock valuation records. Your objective is to execute exactly one pruchase followed by one sale at a subsequent point in time to achieve the highest possible financial gain.
Return the calculated net earnings. If the market conditions do not permit a positive yie ...
Posted on Mon, 22 Jun 2026 18:03:12 +0000 by warrior rabbit
Algorithm Solutions for Codeforces Educational Round 164
A. Ribbon Coloring Strategy
Alice's optimal strategy is to color the ribbon in a repeating pattern like "123123...". Bob's optimal counter-strategy is to recolor the ribbon to the most frequent color.
The most frequent color appears at least ⌈n/m⌉ times, leaving Bob with at most (n - ⌈n/m⌉) recoloring operations. Compare this value wi ...
Posted on Fri, 19 Jun 2026 16:00:53 +0000 by []InTeR[]