KD-tree
kactl
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kactl
-
Popcount walks: next, previous, toward and nearest
As a competitive programmer, Iβve seen similar βmagicβ tricks here: https://github.com/kth-competitive-programming/kactl/blob/ma... (page 23)
-
Learning Python was a good decision. Python may have its own shortcomings, but big integers aren't scary anymore ππ
Printed references (e.g. KACTL) are allowed.
-
Competitive Programming Is Useless
There's not _that_ many algorithms or data structures you see in competitive programming, and the vast majority of them aren't advanced. You do need to memorize a good portion of them, but doing so is the easy part towards becoming good at it.
You can read one moderate length book and know all of the DSes and algorithms you'll need for 99.9% of the time. cses.fi/book is a good one with a free version if you're curious.
https://github.com/kth-competitive-programming/kactl may also be of interest, it contains a good amount of the algorithms/DSes you'd ever need on a few printable pages (20ish).
- [graph theory] Simple algorithm to solve k-cliques problem on graphs
-
I want to design and build a programming language specifically for competitive programming!
Finally, there are certain types of algorithms/operations that can be very sensitive to implementation. For example, a "good" Fast Fourier Transform implementation may be 3-4 orders of magnitude faster than a naive recursive one (with the same complexity!). Another fun case is something like (a*b)%c when the numbers are 64 bit. Using a fast implementation like this one (https://github.com/kth-competitive-programming/kactl/blob/master/content/number-theory/ModMulLL.h#L20) can speed up your code by 3-4x compared to using a naive implementation.
What are some alternatives?
CppRobotics - Header-only C++ library for robotics, control, and path planning algorithms. Work in progress, contributions are welcome!
cpstl - Copy and Paste standard library (CPSTL) is a repository with a collection of data structure and algorithms in many different languages
algorithms - Algorithms & Data Structures & Computer Science studies
cc0-textures - Torrent downloads of free, CC0 licensed, PBR textures
LeetCode-Solutions - ποΈ Python / Modern C++ Solutions of All 3123 LeetCode Problems (Weekly Update)
BitsPlease-solutions - Solutions For Problems uploaded in
C-Plus-Plus - Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes.
Fork_CPP - This repository contain the C++ program from basic to advance. This repository will help you to prepare for the interview questions.
dice - Digital Image Correlation Engine (DICe): a stereo DIC application that runs on Mac, Windows, and Linux
Leetcode_Solutions
Game-of-Life - Simulates Conway's Game of Life Algorithm