Slide 1

Slide 1 text

Competitive Programming Simon Hørup Eskildsen @Sirupsen Monday, May 14, 12

Slide 2

Slide 2 text

HOW NOW THEN Monday, May 14, 12

Slide 3

Slide 3 text

HOW Monday, May 14, 12

Slide 4

Slide 4 text

Dansk Datalogi Dyst Monday, May 14, 12

Slide 5

Slide 5 text

Kvalifikation Monday, May 14, 12

Slide 6

Slide 6 text

Terning Monday, May 14, 12

Slide 7

Slide 7 text

Terning PROBLEM På en normal terning er summen af øjne på to mod- stående sider altid 7. Dette gælder ikke for de terninger, vi har i denne opgave, men ellers ligner de almindelige terninger. Det gælder om at stable et antal terninger oven på hinanden i en høj firkantet søjle. Nederst placeres terning nummer 1, og den kan orienteres valgfrit. Oven på denne placeres terning nummer 2, således at siden, der vender op på terning nummer 1, har samme antal øjne som siden, der vender nedad på terning nummer 2. Oven på nummer 2 placeres nummer 3 efter samme princip og så fremdeles. To terninger placeret oven på hinanden skal altså have det samme antal øjne på de sider, der støder op til hinanden. Når en sådan søjle er bygget, kan man rotere de enkelte terninger ¼ , ½ eller ¾ omgang. Det gælder nu om at finde en opstilling, hvor én af siderne i søjlen har så stor sum af øjne som muligt. OPGAVE Skriv et program, som • fra input-filen, terning.in, indlæser antallet af terninger og en beskrivelse af dem, • beregner den størst mulige sum af øjne for en side, • skriver resultatet til output-filen, terning.out. INPUT Input læses fra standard-input og består af et antal linjer: • Første linje indeholder et heltal, N, der angiver antallet af terninger (1 ≤ N ≤ 10 000). • De næste N linjer indeholder en beskrivelse af en terning bestående af 6 heltal A, B, C, D, E, F adskilt af et enkelt mellemrum. Disse heltal beskriver antallet af øjne på de enkelte sider, som illustreret ved følgende figur: OUTPUT Output skal skrives til standard-output og skal bestå af et enkelt heltal, der angiver den størst mulige sum af øjne for en side. EKSEMPLER input output 5 29 2 3 1 6 5 4 3 1 2 4 6 5 5 6 4 1 3 2 1 3 6 2 4 5 4 1 6 5 2 3 Nedenfor er vist, hvordan terningerne kan stables og orienteres, så den største sum for en side bliver 29. DDD12-1 TERNING Side 1 af 1 Monday, May 14, 12

Slide 8

Slide 8 text

Camp Monday, May 14, 12

Slide 9

Slide 9 text

Reception Monday, May 14, 12

Slide 10

Slide 10 text

Monday, May 14, 12

Slide 11

Slide 11 text

Monday, May 14, 12

Slide 12

Slide 12 text

Training Monday, May 14, 12

Slide 13

Slide 13 text

BFS DFS Dijkstra’s Floyd-Warshall Segment tree Dynamic programming Black-Red-Trees Binary search A* Stack Queue Priority queue Quicksort Mergesort Topological sorting Divide and conquer Linked list Hash tables Greedy Fibonacci heaps Van Embde Boas Trees Disjoint sets Minimum spanning trees Bellman-Ford Johnson’s algorithm The Ford Fulkerson method Bipartite graphs Matrix operations Computational geometry Graph coloring Flood-fill Recursion Backtracking Suffix trees Tries Eulerian cycle Adjadency lists Hamiltonian cycle Range tree Compression Minkowski sum Sets Splay tree Kruskal’s Monday, May 14, 12

Slide 14

Slide 14 text

BFS DFS Dijkstra’s Floyd-Warshall Segment tree Dynamic programming Black-Red-Trees Binary search A* Stack Queue Priority queue Quicksort Mergesort Topological sorting Divide and conquer Linked list Hash tables Greedy Fibonacci heaps Van Embde Boas Trees Disjoint sets Minimum spanning trees Bellman-Ford Johnson’s algorithm The Ford Fulkerson method Bipartite graphs Matrix operations Computational geometry Graph coloring Flood-fill Recursion Backtracking Suffix trees Tries Eulerian cycle Adjadency lists Hamiltonian cycle Range tree Compression Minkowski sum Sets Splay tree Kruskal’s Monday, May 14, 12

Slide 15

Slide 15 text

BOI Monday, May 14, 12

Slide 16

Slide 16 text

Monday, May 14, 12

Slide 17

Slide 17 text

Monday, May 14, 12

Slide 18

Slide 18 text

Monday, May 14, 12

Slide 19

Slide 19 text

Monday, May 14, 12

Slide 20

Slide 20 text

Monday, May 14, 12

Slide 21

Slide 21 text

Ventspils Monday, May 14, 12

Slide 22

Slide 22 text

Competition Monday, May 14, 12

Slide 23

Slide 23 text

Mobile Monday, May 14, 12

Slide 24

Slide 24 text

Mobile Den kendte mobilnetværksoperatør, Totalphone, har opsat et antal nye telefonmaster for at dække en nybygget motorvej med netværk. Programmørerne i Totalphone har som altid været sløsede, og derfor kan transmissions-styrken ikke sættes individuelt for hver telefonmast, men alle telefonmasterne skal sende med samme styrke. For at minimere strømforbruget vil firmaet vide: Hvad er den maksimale afstand fra et punkt på motorvejen til den nærmeste telefonmast. Altså: For hvert sted på motorvejen kan man finde afstanden til den nærmeste telefonmast. Hvad er den maksimale af disse afstande? Input data Den første linje i tekstfilen mobile.in består af to heltal N(1   ≤   N   ≤   106) og L(1  ≤  L  ≤  109), der repræsenterer henholdsvis antallet af telefonmaster og længden af motorvejen. Herefter følger N linjer, der hver består af to heltal xi , yi (-109 ≤ xi ,yi ≤ 109), der beskriver koordinaterne for en telefonmast. Alle punkter er forskellige. Koordinaterne er sorteret i ikke-faldende rækkefølge med hensyn til x- koordinaterne. Hvis to x-værdier er de samme, er koordinaterne sorteret mht. y- koordinaterne i stigende rækkefølge. Motorvejen er en ret linje fra (0; 0) til (L; 0). Output data Den første og eneste linje i tekstfilen mobile.out skal indeholde et enkelt heltal: Den maksimale afstand fra et punkt på motorvejen til den nærmeste telefonmast. Dit output vil blive betragtet for korrekt, hvis det afviger med højst 10-3 fra det rigtige svar. Eksempel Input data (file mobile.in) Output data (file mobile.out) 2 10 0 0 11 1 5.545455 Grading Der gives 25 point for testsæt hvor N≤5000. Der gives 50 point for testsæt hvor N≤100000. Advarsel Brug mindst double præcisions tal i jeres udregninger, da mindre typer muligvis ikke giver den nødvendige præcision. Monday, May 14, 12

Slide 25

Slide 25 text

Results Monday, May 14, 12

Slide 26

Slide 26 text

Monday, May 14, 12

Slide 27

Slide 27 text

Monday, May 14, 12

Slide 28

Slide 28 text

Monday, May 14, 12

Slide 29

Slide 29 text

Monday, May 14, 12

Slide 30

Slide 30 text

Monday, May 14, 12

Slide 31

Slide 31 text

Monday, May 14, 12

Slide 32

Slide 32 text

Monday, May 14, 12

Slide 33

Slide 33 text

Monday, May 14, 12

Slide 34

Slide 34 text

NOW Monday, May 14, 12

Slide 35

Slide 35 text

Lessons Monday, May 14, 12

Slide 36

Slide 36 text

THEN Monday, May 14, 12

Slide 37

Slide 37 text

Monday, May 14, 12

Slide 38

Slide 38 text

Monday, May 14, 12

Slide 39

Slide 39 text

Monday, May 14, 12

Slide 40

Slide 40 text

QUESTIONS Simon Hørup Eskildsen @Sirupsen Monday, May 14, 12