A comprehensive collection of Common Lisp implementations for competitive programming algorithms and data structures.
cl-competitive is a Common Lisp library specifically designed for competitive programming. It provides a comprehensive collection of efficient algorithms and data structures, such as graph algorithms, number theory utilities, and specialized data structures like segment trees and treaps, to help solve complex problems within the time and memory constraints of coding competitions. The project is maintained to aid both competition performance and deeper algorithmic understanding.
Common Lisp programmers participating in competitive programming contests on platforms like AtCoder, yukicoder, and HackerEarth. It is also suitable for learners studying advanced algorithms and data structures in Common Lisp.
Developers choose cl-competitive because it offers a specialized, performance-optimized toolkit tailored for competitive programming, with code often utilizing SBCL-specific extensions and 0-based indexing to meet contest standards. Its modular organization and extensive coverage of competition-specific algorithms provide a practical advantage over general-purpose Common Lisp libraries.
Common Lisp implementation of algorithms
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes over 100 modules covering graph algorithms (e.g., Dinic's, Hopcroft-Karp), number theory, geometry, and string processing, as listed in the README, providing extensive coverage for competitive programming problems.
Code uses SBCL-specific extensions and 0-based indexing, optimized for speed in contests like AtCoder and yukicoder, as stated in the philosophy and test environment sections.
Algorithms are categorized into clear sections such as 'Unclassified data structures' and 'Arithmetic and algebra', facilitating easy reference and use, as seen in the detailed contents list.
Offers I/O optimization modules like read-fixnum.lisp and write-double-float.lisp, designed for faster input/output handling, which are crucial for meeting time limits in coding competitions.
Relies on SBCL-specific features such as declaration as assertion and is tested only on SBCL versions, as admitted in the README, making it unsuitable for other Common Lisp implementations.
The README explicitly warns against direct loading as an ASDF module due to its unconventional structure, complicating use in standard software projects and requiring manual file handling.
While file listings are provided, there is a lack of detailed usage guides, API documentation, or tutorials, which could hinder learning and adoption for new users.