Competition Programming Tutorial
Dario Fischbein
Competition Programming Tutorial p. 1/1
What is it about?
Problem Solving Programming Team Work Strategy Training
Competition Programming Tutorial p. 2/1
Problem Types
Sorting Arithmetic / Number theory / Combinatory Recurrence relations and counting Backtracking Graph algorithms Greedy Dynamic programming Computational geometry Parsing
Competition Programming Tutorial p. 3/1
Graph Algorithms
Dijkstra Floyd BFS/DFS Bellman-Ford Kruskal (union nd) Prime Ford-Fullkerson - Preow-push
Competition Programming Tutorial p. 4/1
Strategy
How the ranking is done in ACM Contest Easiest -> hardest Do not debug, do review Plan and re-plan de the schedule Role of each one Use of WA and TLE to get information Add simple test cases Log of your own errors Use of the score board The last hour
Competition Programming Tutorial p. 5/1
Strategy
How the ranking is done in ACM Contest Easiest -> hardest Do not debug, do review Plan and re-plan de the schedule Role of each one Use of WA and TLE to get information Add simple test cases Log of your own errors Use of the score board The last hour
Competition Programming Tutorial p. 6/1
Useful Links
Valladolid Online Judge acm.uva.es/problemset/
International Collegiate Programming Contes icpc.baylor.edu/icpc/ TopCoder www.topcoder.com/tc/ The Algorithmist www.algorithmist.com/
Competition Programming Tutorial p. 7/1
Class Organization
15:00 - 15:15 Individual questions 15:15 - 16:30 Problem solving - mini contest 16:30 - 17:00 Problem discussion
Competition Programming Tutorial p. 8/1
Problem Set For 8/Feb
Minimal coverage (10020) Shoemakers Problem (10026) Divisibility (10036)
Competition Programming Tutorial p. 9/1
For the Week
Problems Camel trading (10700) Constructing BST (10821) Take the Land (10074) Reading
Greedy Algorithms en.wikipedia.org/wiki/Greedy_algorithm Dynamic programming
en.wikipedia.org/wiki/Dynamic_programming
Competition Programming Tutorial p. 10/1
Problem Set For 15/Feb
Whats Cryptanalysis? (10008) Simple calculations (10014) Flip Sort (10327)
Competition Programming Tutorial p. 11/1
For the Week
Problems Euclids Game (10368) Twin Primes (10394) Flip-Flop the Squarelotron (10016) Reading Sorting
www.algorithmist.com/index.php/Sorting
www.sgi.com/tech/stl/sort.html (/stable_sort.htm
Euclidean algorithm
en.wikipedia.org/wiki/Euclidean_algorithm p. 12/1 Competition Programming Tutorial
Problem Set For 22/Feb
Adventures in Moving - Part IV (uva:10201)(pku:2465) Pairsumonious Numbers (uva:10202)(pku:2466) Snow Clearing (uva:10203)(pku:2467) Stack em Up (uva:10205)(pku:2469)
Competition Programming Tutorial p. 13/1
Problem Set For 8/Mar
Injured Queen Problem (uva:10401) A Star not a Tree? (uva:10228) (pku:2420) Arbitrage (uva:104) (pku:1238)
New Judge: http://acm.pku.edu.cn/JudgeOnline
Competition Programming Tutorial p. 14/1
For the Week
Problems Longest Common Subsequence (uva:10405) Folding My T-Shirt (uva:10416) Reading Longest increasing subsequence problem
en.wikipedia.org/wiki/Longest_increasing_subsequence_problem
Bellman-Fork algorithm
en.wikipedia.org/wiki/Bellman-Ford_algorithm
Competition Programming Tutorial p. 15/1
Problem Set For 15/Mar
Problems to Solve Common Subsequence (pku:1458) Freckles (uva:10034) (pku:2560) Intersection (uva:191)(pku:1410) Code to x Injured Queen Problem (p10401 - to x.cpp) Flip Sort (p10327 - to x.cpp)
Competition Programming Tutorial p. 16/1
For the Week
Reading Eulerian path
en.wikipedia.org/wiki/Eulerian_path
Competition Programming Tutorial p. 17/1