#ACM-ICPC #Programming Contest Coding Competition #Training 2021 | 7 Hours | Full Course. The International Collegiate Programming Contest, known as the ICPC, is an annual multi-tiered competitive programming competition among the universities of the world. In 2018, ICPC participation included 52,709 students from 3,233 universities in 110 countries.
Source: UCLA ACM and Google Developer
Topics
These are the main topics that should be done thoroughly.
Number theory
Euclidian and extended Euclidian algorithm
Modular arithmetic and modular inverse
Prime generation (sieve and segmented sieve)
Fermat’s theorem
Euler’s Totient function
Miller Rabin primality test
Chinese remainder theorem
Lucas theorem
Greedy algorithms
Activity-selection problem
Kruskal’s algorithm
Prim’s algorithm
Binary search
Topcoder binary search
Binary search
Ubiquitous binary search — get a grasp of discrete and continuous binary searches
Data structures
Linked lists
Binary-search tree
Binary-indexed tree or Fenwick tree
Segment Tree (RMQ, range sum, and lazy propagation)
Red-Black trees
Hashing
Extensive list of data structures
Graph algorithms
Breadth-first search (BFS)
Depth-first search (DFS)
Shortest path from source to all vertices (Dijkstra)
Shortest path from every vertex to every other vertex (Floyd Warshall)
Minimum spanning tree (Prim)
Minimum spanning tree (Kruskal)
Topological Sort
Johnson’s algorithm
Articulation points (or cut vertices) in a graph
Bridges in a graph
All graph algorithms
String algorithms
Learning library functions for string actually proves very helpful. (C++: See this, this, String in Java.)
KMP algorithm
Rabin karp
Z’s algorithm
Aho-Corasick string matching
Suffix arrays
Trie
Finite automata
Dynamic programming
Dynamic programming — GeeksforGeeks
Dynamic Programming — Codechef
Dynamic programming is quite important and can be infused and asked with various other topics. Some different types of DP concepts are:
Classic DP
Longest-common subsequence
Longest-increasing subsequence
Edit distance
Minimum partition
Ways to cover a distance
Longest path in matrix
Subset-sum problem
Optimal strategy for a game
0–1 knapsack problem
Assembly-line scheduling
All DP algorithms
Computational geometry
Convex-hull algorithms
Geometric algorithms
Practice Problems
uHunt
a tool for UVa online-judge that keeps statistics, provide selections of problems to solve, and exposes a web API for other web developers to build upon it
ACM-ICPC Live Archive
z-training
Caribbean Online Judge
URI Online Judge
Sphere Online Judge
UVa Online Judge
Timus Online Judge
Kattis - hopefully this becomes an open-sourced online judge one day
Saratov State University Online Contester
Zhejiang University Online Judge
DWITE Programming Contests
Facebook Programming Challenge
Solve programming challenges. Get a phone interview.
Google Code Jam
Project Euler
InterviewStreet Code Sprints
Canadian Computing Competition
ACPC - Alberta Collegiate Programming Contest
Tips/Hints/Helpful
Stanford ACM Team Notebook
Problem Classification (with hints)
Cornell ACM ICPC Team Info Page
Contains notes on C++ I/O, C++ STL, Graph algorithms, DP, and Brute force tricks
ICPC Tips
Common Mistakes in Programming Contests [pdf]
Supporting Material for the Competitive Programming book
Contains sample code and instructional slides
Contest Code Samples by University of Alberta
ACMSolver
Collection of competitive programming resources
Algorithmist
Covers common algorithms and popular problem sets (descriptions, hints, and solutions)
Quest to Solve
Common problem types
Tips for Avoiding 'Time Limit Exceeded'
Useful books for the contest
Introduction to Algorithms (aka CLRS)
Competitive Programming
Small enough to carry around easily and contains lots of code examples
The C++ Standard Library
Programming Challenges
code examples
Available at Brock's library: 5th floor, QA 76.6 S59 2003
Contest Environments
DOMJudge
PC^2
Ultra Cool Programming Contest Control Centre
For hosting ICPC-style programming contests on the web; no longer maintained but still popular
Virtual Judges
Virtual judges let you organize online contests by providing problems from other online judges
Virtual Judge
TJU Online Judge Virtual Contests
UVa Virtual Contest Generator
Virtual Online Contest, Ahmed-Aly.com
Must watch ❤️
Linux Data Science Project #1: How to Analyze US University Ranks at Linux Command Line?
• Linux Data Science Project #1: How to...
Linux Data Science Project #2: Facebook Data Analytics with Linux Bash Shell
• Linux Data Science Project #2: Facebo...
Linux Data Science Project #3: Statistical Data Analytics with Linux Bash Shell
• Linux Data Science Project #3: Statis...
Learn Practical Data Sciences with Bash Shell: Full Video Course!
• Learn Practical Data Sciences with Ba...
Scientific Programming School - An Introduction
• Scientific Programming School - An In...
Join us! 🚀
Like our FB Page: / learnscientific
Our Website: https://scientificprogramming.io/