AtCoder Level-Based Library Guide
This page groups Nim-ACL modules by approximate AtCoder color level.
The classification is only a guideline. The difficulty of a problem depends heavily on recognizing the technique and combining it with other ideas.
| Level |
Approximate colors |
| Beginner |
Gray, brown, green |
| Intermediate |
Cyan, blue |
| Advanced |
Yellow and above |
Relationship to the official lecture catalog
The beginner/intermediate/advanced levels on this page are Nim-ACL-specific
usage categories. They are separate from the official difficulty levels 1–9.
See the
AtCoder Algorithm Lectures coverage page
for the official cross-reference.
Beginner
Focus on basic transformations, graph traversal, prefix aggregation, and standard data structures.
Recommended modules
Core ACL modules:
import atcoder/dsu
import atcoder/fenwicktree
import atcoder/segtree
import atcoder/modint
Suggested order
- Run-Length Encoding
- Coordinate Compression
- Prefix sums
- DSU
- Fenwick Tree
- Dijkstra
- Segment Tree
- Functional Graph
- KMP
Intermediate problems require selecting a structure based on static/dynamic, online/offline, and algebraic properties.
Range queries
Strings
| Module |
Use |
| Manacher |
Palindrome radii |
| Aho-Corasick |
Multiple-pattern matching |
| Minimum Rotation |
Canonical cyclic rotation |
| Rolling Hash |
Substring comparison |
| Suffix Array |
Lexicographic substring structure |
Trees and DP
| Module |
Use |
| Rerooting DP |
Tree DP for every root |
| Heavy-Light Decomposition |
Path queries |
| LCA |
Ancestor and distance queries |
Static and persistent range structures
Advanced
Advanced problems frequently combine offline processing, rollback, tree compression, and graph decomposition.
Dynamic connectivity
Advanced tree techniques
| Module |
Use |
| Virtual Tree |
Compress important vertices |
| DSU on Tree |
Subtree frequency queries |
| Rerooting DP |
All-root tree DP |
| Link-Cut Tree |
Dynamic forests |
Undirected graph decomposition
Advanced strings
| Module |
Use |
| Suffix Automaton |
Distinct substrings and occurrences |
| Palindromic Tree |
Distinct palindromes |
| Aho-Corasick |
Automaton DP |
| Suffix Array / LCP |
Substring ordering |
Advanced mathematics
| Module |
Use |
| FPS |
Formal power series |
| Convolution / NTT |
Polynomial multiplication |
| XOR Basis |
GF(2) linear basis |
Quick selection guide
| Problem shape |
Candidate |
| Large values, few distinct coordinates |
Coordinate Compression |
Apply a mapping k times |
Functional Graph |
| Max/min XOR with an element |
Binary Trie |
| Representable subset XOR |
XOR Basis |
| Multiple patterns |
Aho-Corasick |
| Palindrome range checks |
Manacher |
| Distinct palindromes |
Palindromic Tree |
| Every-root tree DP |
Rerooting |
| Subtree frequency queries |
DSU on Tree |
| Important vertex subset on a tree |
Virtual Tree |
| Offline edge deletion |
Offline Dynamic Connectivity |
| Bridges and articulation points |
Low-link decomposition |
Future candidates
High-priority future candidates include:
- Dominator Tree
- Mo on Tree
- Persistent Binary Trie
- Miller-Rabin / Pollard Rho
- Segment Tree Beats facade
- Persistent Segment Tree