Intro to Competitive Programming
Junferno Junferno
183K subscribers
780,231 views
40K

 Published On Sep 19, 2022

Most interesting video ever created. I don't know what I mispronounced but I definitely mispronounced something. Also Junferno's face is not in this video as much due to him falling into a state of anguish mid-recording (he was busy).

Patreon:   / junferno  
Twitter:   / junferno  
Join the Discord:   / discord  
Secondary Discord invite if vanity invite expires:   / discord  
Check out my other stuff on GitHub: https://github.com/kevinjycui

Corrections:
[Visual error at 6:02] "Ultrecht" should be Utrecht
[Visual error at 10:32] Shortest path from A to C should be ADC, yielding a distance of 1+7=8, making the total distance from A to C to E: 8+12=20

Footnotes:
Other prominent online judges similar to Codeforces/DMOJ include AtCoder, Leetcode (mostly technical interview-type questions), Codechef, and TopCoder. CSES is an online judge focused on a single problemset. Advent of Code is a Christmas-themed daily programming challenge run annually in December in which only the output of the test cases has to be submitted as opposed to the solution code. Google Foobar is a "secret" Google programming challenge meant to be a recruiting technique targeted towards Google Search users who use keywords related to coding.
The technical term for a "network of nodes" is a "graph". Algorithms dealing with such graphs are categorised as graph theory algorithms. Nodes are connected by "edges" which may or may not have "weights". A directed graph is a graph in which the edges only go one way. An acyclic graph is a graph which contains no cycles.
A queue is different from a list in that it is not indexable, but rather just serves the element at the top when polled. A priority queue serves the element with the highest priority (usually implemented with heap). It does not actually "sort itself" but the elements will come out "sorted". The queue is sometimes referred to as "a list" in this video. This is meant to mean a "sequence of elements" and not the "list" data structure that exists in some languages.
The preferred language for most competitive programming is C++, though other languages are also used. Java, for example, is often used alongside a rewrite of the input reader class, as the built-in Scanner is too slow.

References: "For the absence of a bibliography I offer neither explanation nor apology." -- Edsger W. Dijkstra

Photos courtesy of Wikimedia Commons, GeeksForGeeks, DMOJ
DMOJ: https://dmoj.ca/
Codeforces: https://codeforces.com/
Single Source Shortest Path: https://dmoj.ca/problem/sssp
VM7WC '15 #4 Gold - Chain Rule: https://dmoj.ca/problem/vmss7wc15c4p3

Music tracklist:
   • The Complete Junferno Soundtrack  

Community Captions:
Portuguese (Brazil) - Guilherme BR

show more

Share/Embed