This was my practice run for ICPC. There are more than 250 accepted solutions listed here. I have also added tags for some of the problems.
- At first try to come up with a solution by yourself.
- If you can't then read some article on the associated tags and try again.
- If you still can't then you proceed to the solution. Try to understand what is going on. Then try your own approach.
The CSES problems can be found here: https://cses.fi/problemset/list/
This set has some classic problems.
Milestones:
Status |
Name |
Tags |
Link |
β |
Weird Algorithm |
|
Code |
β |
Missing Number |
|
Code |
β |
Repetitions |
|
Code |
β |
Increasing Array |
|
Code |
β |
Permutations |
|
Code |
β |
Number Spiral |
|
Code |
β |
Two Knights |
|
Code |
β |
Two Sets |
|
Code |
β |
Bit Strings |
|
Code |
β |
Trailing Zeros |
|
Code |
β |
Coin Piles |
|
Code |
β |
Palindrome Reorder |
|
Code |
β |
Gray Code |
|
Code |
β |
Tower of Hanoi |
|
Code |
β |
Creating Strings |
|
Code |
β |
Apple Division |
|
Code |
β |
Chessboard and Queens |
|
Code |
β |
Digit Queries |
|
Code |
β |
Grid Paths |
|
Code |
Status |
Name |
Tags |
Link |
β |
Distinct Numbers |
|
Code |
β |
Apartments |
|
Code |
β |
Ferris Wheel |
|
Code |
β |
Concert Tickets |
|
Code |
β |
Restaurant Customers |
|
Code |
β |
Movie Festival |
|
Code |
β |
Sum of Two Values |
|
Code |
β |
Maximum Subarray Sum |
|
Code |
β |
Stick Lengths |
|
Code |
β |
Missing Coin Sum |
|
Code |
β |
Collecting Numbers |
|
Code |
β |
Collecting Numbers II |
|
Code |
β |
Playlist |
|
Code |
β |
Towers |
|
Code |
β |
Traffic Lights |
|
Code |
β |
Josephus Problem I |
|
Code |
β |
Josephus Problem II |
OST |
Code |
β |
Nested Ranges Check |
|
Code |
β |
Nested Ranges Count |
Point Update Range Sum |
Code |
β |
Room Allocation |
|
Code |
β |
Factory Machines |
|
Code |
β |
Tasks and Deadlines |
|
Code |
β |
Reading Books |
|
Code |
β |
Sum of Three Values |
|
Code |
β |
Sum of Four Values |
|
Code |
β |
Nearest Smaller Values |
|
Code |
β |
Subarray Sums I |
|
Code |
β |
Subarray Sums II |
|
Code |
β |
Subarray Divisibility |
|
Code |
β |
Subarray Distinct Values |
Two pointers Sliding Window |
Code |
β |
Array Division |
|
Code |
β |
Sliding Median |
|
Code |
β |
Sliding Cost |
OST Point Update Range Sum |
Code |
β |
Movie Festival II |
Greedy Scheduling Binary Search |
Code |
β |
Maximum Subarray Sum II |
|
Code |
Status |
Name |
Tags |
Link |
β |
Dice Combinations |
Coin change DP |
Code |
β |
Minimizing Coins |
Coin change DP |
Code |
β |
Coin Combinations I |
Coin change DP |
Code |
β |
Coin Combinations II |
Coin change DP |
Code |
β |
Removing Digits |
|
Code |
β |
Grid Paths |
|
Code |
β |
Book Shop |
|
Code |
β |
Array Description |
|
Code |
β |
Counting Towers |
|
Code |
β |
Edit Distance |
|
Code |
β |
Rectangle Cutting |
|
Code |
β |
Money Sums |
|
Code |
β |
Removal Game |
|
Code |
β |
Two Sets II |
Knapsack DP |
Code |
β |
Increasing Subsequence |
LIS |
Code |
β |
Projects |
|
Code |
|
Elevator Rides |
|
Code |
β |
Counting Tilings |
Broken Profile DP Bitmask |
Code |
β |
Counting Numbers |
Digit Dp |
Code |
Status |
Name |
Tags |
Link |
β |
Counting Rooms |
BFS |
Code |
β |
Labyrinth |
BFS |
Code |
β |
Building Roads |
BFS DFS Forest Counting |
Code |
β |
Message Route |
BFS |
Code |
β |
Building Teams |
Bicoloring DFS |
Code |
β |
Round Trip |
Cycle in undirected graph DFS |
Code |
β |
Monsters |
BFS |
Code |
β |
Shortest Routes I |
Single Source Shortest Path Dijkstra |
Code |
β |
Shortest Routes II |
All Pair Shortes Path Floyd Warshall |
Code |
β |
High Score |
Single Source Shortest Path Bellman Ford |
Code |
β |
Flight Discount |
Single Source Shortest Path Dijkstra |
Code |
β |
Cycle Finding |
Negative Cycle Bellman Ford |
Code |
|
Flight Routes |
|
Code |
β |
Round Trip II |
DFS Cycle in directed graph |
Code |
β |
Course Schedule |
Topological Sort |
Code |
β |
Longest Flight Route |
Topological Sort DP |
Code |
β |
Game Routes |
Topological Sort DP |
Code |
β |
Investigation |
Dijkstra |
Code |
β |
Planets Queries I |
Binary Lifting |
Code |
|
Planets Queries II |
|
Code |
β |
Planets Cycles |
DFS |
Code |
β |
Road Reparation |
Minimum Spanning Tree Kruskal |
Code |
β |
Road Construction |
DSU |
Code |
β |
Flight Routes Check |
Strongly Connected Components |
Code |
β |
Planets and Kingdoms |
Strongly Connected Components |
Code |
β |
Giant Pizza |
2-SAT |
Code |
β |
Coin Collector |
Condensation Graph Topological Sort DP |
Code |
β |
Mail Delivery |
Euler Tour - Undirected |
Code |
|
De Bruijn Sequence |
|
Code |
β |
Teleporters Path |
Euler Path - Directed |
Code |
β |
Hamiltonian Flights |
Hamiltonian Path Bitmask DP |
Code |
β |
Knight's Tour |
Hamiltonian Path Heuristics |
Code |
β |
Download Speed |
Max Flow Min Cut Push Relabel Dinic |
Code |
β |
Police Chase |
Max Flow Min Cut Push Relabel |
Code |
β |
School Dance |
Max Flow``Bipartite Matching Hopkroft Carp |
Code |
β |
Distinct Routes |
Max Flow Dinic Path reconstruction |
Code |
Status |
Name |
Tags |
Link |
β |
Static Range Sum Queries |
|
Code |
β |
Static Range Minimum Queries |
|
Code |
β |
Dynamic Range Sum Queries |
|
Code |
β |
Dynamic Range Minimum Queries |
|
Code |
β |
Range Xor Queries |
|
Code |
β |
Range Update Queries |
|
Code |
β |
Forest Queries |
|
Code |
β |
Hotel Queries |
|
Code |
β |
List Removals |
|
Code |
β |
Salary Queries |
|
Code |
β |
Prefix Sum Queries |
|
Code |
β |
Pizzeria Queries |
|
Code |
β |
Subarray Sum Queries |
|
Code |
β |
Distinct Values Queries |
|
Code |
β |
Increasing Array Queries |
Segment tree Tree walking |
Code |
β |
Forest Queries II |
|
Code |
β |
Range Updates and Sums |
|
Code |
β |
Polynomial Queries |
Lazy Segment Tree |
Code |
β |
Range Queries and Copies |
Persistent Segment Tree |
Code |
Status |
Name |
Tags |
Link |
β |
Subordinates |
Subtree DP |
Code |
β |
Tree Matching |
Tree DP |
Code |
β |
Tree Diameter |
Tree Diameter |
Code |
β |
Tree Distances I |
Tree Diameter |
Code |
β |
Tree Distances II |
Tree Rerooting DP |
Code |
β |
Company Queries I |
Binary Lifting |
Code |
β |
Company Queries II |
LCA |
Code |
β |
Distance Queries |
LCA |
Code |
β |
Counting Paths |
HLD |
Code |
β |
Subtree Queries |
HLD |
Code |
β |
Path Queries |
HLD |
Code |
β |
Path Queries II |
HLD |
Code |
β |
Distinct Colors |
MO on Tree / Sack Small to Large |
Code Code |
β |
Finding a Centroid |
Centroid |
Code |
β |
Fixed-Length Paths I |
Centroid Decomposition |
Code |
β |
Fixed-Length Paths II |
Centroid Decomposition |
Code |
Status |
Name |
Tags |
Link |
β |
Josephus Queries |
|
Code |
β |
Exponentiation |
|
Code |
β |
Exponentiation II |
|
Code |
β |
Counting Divisors |
|
Code |
β |
Common Divisors |
|
Code |
β |
Sum of Divisors |
|
Code |
β |
Divisor Analysis |
|
Code |
β |
Prime Multiples |
|
Code |
β |
Counting Coprime Pairs |
|
Code |
β |
Binomial Coefficients |
|
Code |
β |
Creating Strings II |
|
Code |
β |
Distributing Apples |
|
Code |
β |
Christmas Party |
|
Code |
β |
Bracket Sequences I |
|
Code |
β |
Bracket Sequences II |
|
Code |
β |
Counting Necklaces |
|
Code |
β |
Counting Grids |
|
Code |
β |
Fibonacci Numbers |
|
Code |
β |
Throwing Dice |
|
Code |
β |
Graph Paths I |
|
Code |
β |
Graph Paths II |
|
Code |
β |
Dice Probability |
|
Code |
|
Moving Robots |
|
Code |
β |
Candy Lottery |
Expected Value |
Code |
|
Inversion Probability |
|
Code |
β |
Stick Game |
|
Code |
β |
Nim Game I |
|
Code |
β |
Nim Game II |
|
Code |
β |
Stair Game |
|
Code |
β |
Grundy's Game |
|
Code |
β |
Another Game |
|
Code |
Status |
Name |
Tags |
Link |
β |
Word Combinations |
Trie DP |
Code |
β |
String Matching |
Suffix array / Hashing |
Code |
β |
Finding Borders |
Z function Prefix function / Hashing |
Code |
β |
Finding Periods |
Z function Prefix function / Hashing |
Code |
β |
Minimal Rotation |
Suffix Automata |
Code |
β |
Longest Palindrome |
Manacher |
Code |
|
Required Substring |
|
Code |
β |
Palindrome Queries |
Range Sum Hashing |
Code |
β |
Finding Patterns |
|
Code |
β |
Counting Patterns |
|
Code |
β |
Pattern Positions |
|
Code |
β |
Distinct Substrings |
|
Code |
β |
Repeating Substring |
Hashing Binary Search |
Code |
β |
String Functions |
|
Code |
β |
Substring Order I |
|
Code |
β |
Substring Order II |
|
Code |
β |
Substring Distribution |
Suffix Array Longest Common Prefix |
Code |
Status |
Name |
Tags |
Link |
β |
Point Location Test |
|
Code |
β |
Line Segment Intersection |
|
Code |
β |
Polygon Area |
|
Code |
β |
Point in Polygon |
|
Code |
β |
Polygon Lattice Points |
|
Code |
β |
Minimum Euclidean Distance |
|
Code |
β |
Convex Hull |
|
Code |
Status |
Name |
Tags |
Link |
β |
Meet in the Middle |
|
Code |
β |
Hamming Distance |
|
Code |
β |
Beautiful Subgrids |
Bitset |
Code |
β |
Reachable Nodes |
|
Code |
β |
Reachability Queries |
|
Code |
β |
Cut and Paste |
Implicit Treap |
Code |
β |
Substring Reversals |
Implicit Treap |
Code |
β |
Reversals and Sums |
Implicit Treap |
Code |
β |
Necessary Roads |
Bridges |
Code |
β |
Necessary Cities |
Articulation Points |
Code |
|
Eulerian Subgraphs |
|
Code |
β |
Monster Game I |
DP Convex Hull Optimization |
Code |
β |
Monster Game II |
DP Convex Hull Optimization |
Code |
β |
Subarray Squares |
DP Convex Hull Optimization |
Code |
|
Houses and Schools |
|
Code |
β |
Knuth Division |
DP Knuth Optimization |
Code |
β |
Apples and Bananas |
FFT |
Code |
β |
One Bit Positions |
FFT |
Code |
β |
Signal Processing |
FFT |
Code |
β |
New Roads Queries |
HLD |
Code |
β |
Dynamic Connectivity |
Dynamic DSU |
Code |
β |
Parcel Delivery |
Max Flow Min Cost Fixed flow |
Code |
β |
Task Assignment |
Max Flow Min Cost |
Code |
β |
Distinct Routes II |
Max Flow Min Cost Path reconstruction |
Code |
Status |
Name |
Tags |
Link |
β |
Shortest Subsequence |
|
Code |
β |
Counting Bits |
|
Code |
β |
Swap Game |
|
Code |
β |
PrΓΌfer Code |
PrΓΌfer Code |
Code |
β |
Acyclic Graph Edges |
|
Code |
β |
Strongly Connected Edges |
Bridge |
Code |
|
Even Outdegree Edges |
|
Code |
β |
Multiplication Table |
Binary Search Harmonic Progression |
Code |
β |
Advertisement |
Segment Tree |
Code |
β |
Special Substrings |
Constructive Hashing |
Code |
|
Permutation Inversions |
|
Code |
β |
Maximum Xor Subarray |
Trie Divide and Conquer |
Code |
β |
Movie Festival Queries |
Greedy Scheduling RMQ Binary Lifting |
Code |
β |
Chess Tournament |
Greedy |
Code |
β |
Tree Traversals |
|
Code |
β |
Network Renovation |
Euler Tour |
Code |
β |
Graph Girth |
BFS Tree |
Code |
β |
Intersection Points |
Range Query with Sweep Line |
Code |
β |
Inverse Inversions |
|
Code |
|
Monotone Subsequences |
|
Code |
|
String Reorder |
|
Code |
|
Stack Weights |
|
Code |
|
Pyramid Array |
|
Code |
β |
Increasing Subsequence II |
|
Code |
β |
String Removals |
DP Cumulative sum |
Code |
β |
Bit Inversions |
|
Code |
β |
Xor Pyramid |
|
Code |
β |
Writing Numbers |
|
Code |
β |
String Transform |
Inverse Burrows Wheeler Transform |
Code |
|
Letter Pair Move Game |
|
Code |
β |
Maximum Building I |
Segment Tree |
Code |
|
Sorting Methods |
|
Code |
β |
Cyclic Array |
Binary Search Greedy |
Code |
|
List of Sums |
|
Code |
|
Increasing Array II |
|
Code |
|
Food Division |
|
Code |
β |
Bit Problem |
SOS DP |
Code |
|
Swap Round Sorting |
|
Code |
|
Binary Subsequences |
|
Code |
β |
Tree Isomorphism I |
Tree Isomorphism rooted |
Code |
β |
Counting Sequences |
Inclusion Exclusion Principle |
Code |
β |
Critical Cities |
Dominator Tree |
Code |
β |
School Excursion |
Knapsack DP Bitset |
Code |
|
Coin Grid |
|
Code |
|
Robot Path |
|
Code |
|
Programmers and Artists |
|
Code |
|
Course Schedule II |
|
Code |
|
Removing Digits II |
|
Code |
|
Coin Arrangement |
|
Code |
|
Counting Bishops |
|
Code |
β |
Grid Puzzle I |
Max Flow Min Cut |
Code |
β |
Grid Puzzle II |
Max Flow Max Cost |
Code |
|
Empty String |
|
Code |
β |
Grid Paths |
DP Inclusion Exclusion Principle |
Code |
β |
Bit Substrings |
FFT |
Code |
β |
Reversal Sorting |
Implicit Treap |
Code |
|
Counting Reorders |
|
Code |
|
Book Shop II |
|
Code |
β |
Network Breakdown |
DSU with rollback |
Code |
|
Visiting Cities |
|
Code |
|
Missing Coin Sum Queries |
|
Code |
β |
Number Grid |
Constructive |
Code |
|
Maximum Building II |
|
Code |
|
Filling Trominos |
|
Code |
β |
Stick Divisions |
Huffman Coding greedy |
Code |
β |
Coding Company |
Open and Close Interval DP |
Code |
|
Flight Route Requests |
|
Code |
|
Two Stacks Sorting |
|
Code |
β |
Tree Isomorphism II |
Tree Isomorphism unrooted |
Code |
β |
Forbidden Cities |
Block Cut Tree |
Code |
β |
Area of Rectangles |
Range Query and Update with Sweep Line |
Code |
|
Grid Completion |
|
Code |
|
Creating Offices |
|
Code |
β |
Permutations II |
Connected Component DP |
Code |
|
Functional Graph Distribution |
|
Code |
|
New Flight Routes |
|
Code |
|
Grid Path Construction |
|
Code |