百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

Competitive-programming-library

> 编程语言
开源

用于竞赛编程目的的代码库。

2.5K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

用于竞赛编程目的的代码库。

Competitive Programming Library

Code library for competitive programming purposes.

Contents

  • Curriculum: Practice plans for different levels.

  • Data Structures

    • Bitmasks
    • Sortings
      • Merge Sort
    • Trees
      • Fenwick Tree
      • Segment Tree
      • Quad Tree
    • Sparse Table
    • Disjoint-Sets Union
    • SQRT Decomposition
    • Mo's Algorithm
    • Skiplist
    • Indexable Skiplist
    • Heavy-Light Decomposition
    • Treaps
  • Graphs

    • Graph Traversal and Basic Algorithms
      • Graph Traversal
      • Articulation Points and Bridges
      • Bridge Tree
      • Strongly Connected Components
      • Kosaraju Algorithm
      • Biconnected Components
    • Shortest Path
      • Single-Source Shortest Path
      • All-Pairs Shortest Path
    • Minimum Spanning Tree
      • Prim's Algorithm
      • Kruskal's Algorithm
    • Special Graphs
      • Euler Tour (for Eulerian Graphs)
      • Maximum Cardinality Bipartite Matching
    • Max Flow
      • Edmonds-Karp Algorithm
      • Dinic's Algorithm
      • Tarjan's (Push-Relabel) Algorithm
    • Trees
      • Tree Traversal
      • Euler Walk (tin and tout)
      • Lowest Common Ancestor
      • Tree Diameter
  • Math

  • Geometry

  • Strings

    • Prefix Automaton (KMP)
    • Suffix Trie
    • Suffix Array
    • Suffix Automaton
    • Aho Corasick
    • Z Algorithm
    • Manacher
  • Other Algorithms

Related Material

  • Topics Sheet: Different resources for competitive programming topics.
  • Problems Sheet: Manual categorization for a large number of problems on different online judges. This includes estimated difficulty, tags and other notes.
  • UVa-Solutions: Java solutions for most of the problems I solved on UVa online Judge. Codeforces submissions are not uploaded because they can be accessed by anyone. If you need solutions for problems in the Problems Sheet and on another online judge, tell me about them.

Contributing

This project is still under development and is meant to provide a full guide for competitive programmers from beginners and going up to the maximum level possible:

  • More codes for a bunch of different algorithms will be added. You can contribute to codes by:

    • Fixing bugs and comments typos, adding or enhancing comments, improving naming conventions or code structure to make it cleaner, shorter or simpler. You can do this through issues or directly with a pull request.
    • Suggesting codes data structures/algorithms to be added. You can do this through issues.
  • The curriculum is a new branch and I am developing it through my experience in coaching at my home university and from my practice. Your contribution to this branch is highly appreciated due to the following issues:

    • Low difficulty levels get close to each other from my own perspective. That's why to set a difficulty for a problem, it needs an experienced coach or some test participants with the target cp experience.
    • Problems are too many! I solved +3,000 but I can say that this number could have been dramatically reduced and still had the same experience, if some one picked the problems for me. That's why problems (specially topic problems) need to be selected such that they cover almost all experience points (tricks, techniques, implementation details ..etc). This always lead to exclude easy problems (not at the start-off level), but it's fine.
      You can contribute to the curriculum by:
    • Editing plan description, style, content, topic resources, problems or any other thing related.
    • Following the plan as described and adding your own experience as a test participant. You can do this through google spreadsheets described in each plan.
  • In the future, practice guidelines and any can be added. You can contribute to this in any way you want (issues, pull requests or contact me to discuss it).

License

Competitive Programming Library is licensed under a Creative Commons Attribution 4.0 International License.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Java

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言