Jill-Jênn Vie

Researcher at Inria

% Competitive Programming\newline ICPC SWERC Training % Jill-Jênn Vie % First class — aspectratio: 169 —

This course is about algorithmic problem solving

ICPC SWERC, 27–28 January 2024, Sorbonne Université, Paris

:::::::: {.columns align=center} ::: {.column width=”40%”}

swerc.eu ::: ::: {.column width=”40%”} \centering \vspace{5mm} {width=70%} ::: ::::::::

Probably 3 teams per university/school.

Judges

:::::::: {.columns} ::: {.column width=”50%”}

Input

9 10
##########
.....#...#
####.###.#
#..#.#...#
#..#.#.###
###..#.#.#
#.#.####.#
#........#
########.# ::: ::: {.column width="50%"} ## Output

##########
XXXXX#...#
####X###.#
#..#X#...#
#..#X#.###
###XX#.#X#
#X#X####X#
#XXXXXXXX#
########X# ::: ::::::::
python laby.py < laby.in > laby.out  # Python

make laby
./laby < laby.in > laby.out  # C++

Pathfinding in graphs

todo = SomeDataStructure()
Put start in todo
While todo is not empty
	Get node from todo
	For each neighbor of node
		Add neighbor to todo if not visited yet

According to the data structure, the complexity and algorithm can be different

Actually, when we mark nodes can have an impact on the complexity too

Schedule

Outline

  1. Intro
  2. Shortest paths
  3. DP: Dynamic Programming
  4. Matching & flows
  5. Text algorithms (suffix arrays)
  6. Advanced DP
  7. Maths: Arithmetics, Combinatorics and Linear algebra
  8. Dynamic data structures (segment trees)
  9. Geometry & sweep line
  10. Ad-hoc problems
  11. Final tricks
  12. Team selection

Advice

More advice

Objectives for today