Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB. 30.04.2015

Relaterede dokumenter
Opgave: FIL File Paths

Dansk Datalogi Dyst 2015 DDD Runde 2

DDD Runde 2, 2015 Facitliste

Opgaver til Kapitel 6 MatB

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Beat the Clock Sorteringsnetværk

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

KØGE BOWLING KLUB 84. TRÆNINGSINSTRUKTION (højre hånd)

Matlab script - placering af kran

PENSIONADEN

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Allan C. Malmberg. Terningkast

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Matematik A STX december 2016 vejl. løsning Gratis anvendelse - læs betingelser!

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Køreplan Matematik 1 - FORÅR 2005

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Hurtigbrugsanvisning til Dynomet 6.31 for Windows 7

Eksamen i softwareudvikling

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

DM507 Algoritmer og datastrukturer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Efter installation af GEM Drive Studio software fra Delta s CD-rom, skal hoved skærmbilledet se således ud: (koden til administrator adgang er: admin)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Videregående Algoritmik. Version med vejledende løsninger indsat!

Dokumentation af programmering i Python 2.75

Anvendt Statistik Lektion 8. Multipel Lineær Regression

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

International matematikkonkurrence

Danmarks Tekniske Universitet

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Når en spiller tager en vogn, modtager og placerer han kun brikker med forsiden opad på vognen. Brikker med forsiden nedad forbliver på vognen.

DM507 Algoritmer og datastrukturer

Klasse 1.4 Michael Jokil

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Your Lane Your Way. Under Your Lane your Way vælger du hvilke slags spil du vil i gang med. Her ses følgende spil/valgmuligheder:

Præmiesum kr. FIRMABOWLERE

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Nordisk Matematikkonkurrence Danmarks Matematiklærerforening Skoleåret Opgaver ved semifinalen

Få optimeret dit firmas website til mobilen og styrk dit image ud af til.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

Retningslinjer for bedømmelsen. Georg Mohr-Konkurrencen runde

dpersp Uge 40 - Øvelser Internetalgoritmer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Internet Protokollen. - IP er arbejdshesten på næsten alle netværk! Netteknik 1

Tip til 1. runde af Georg Mohr-Konkurrencen Kombinatorik

Rette bunkefejl i Legacy

10 informationer som gør din fejlrapport selvforklarende for både forretningen og programmørerne

Generelle kommentarer omkring løsning af fysikopgaver

BørneIntra hjemmesidekursus

MATEMATIK A-NIVEAU. Anders Jørgensen & Mark Kddafi. Vejledende eksempler på eksamensopgaver og eksamensopgaver i matematik, 2012

Resultater af prototypetesten

Wi-fi Brugsanvisning. SERIE: IZURU Program: Ewpe Smart. Dansk

REGLEN: Et SÆT er tre terninger, hvor den enkelte egenskab er den samme på alle tre ELLER egenskaberne er forskellige på alle tre terninger.

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Grundlæggende køretidsanalyse af algoritmer

Byggeriets Evaluerings Center

Computerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn

Tyngdekraft i Scratch

Forbrugerundersøgelse om detailhandel

Fraktaler Mandelbrots Mængde

Hurtigbrugsanvisning til Dynomet 6.66 for Windows 7-10

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Regelspørgsmål Beach Handball Test din viden om reglerne i beach handball her. Se spørgsmål, og svar på efterfølgende slide.

Danmarks Tekniske Universitet

LEKTION 4 MODSPILSREGLER

DM13-1. Obligatoriske Opgave - Kredsløbs design

I denne manual kan du finde en hurtig introduktion til hvordan du:

(Positions) Talsystemer

Vejledning i udtræk af input-output data fra Statistikbanken

Risikofaktorudviklingen i Danmark fremskrevet til 2020

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Projekt 1 Spørgeskemaanalyse af Bedst på Nettet

Det er naturligvis frivilligt, om du vil deltage, men fordelen for dig er, at du får et gratis ekstra eftersyn af din ejendom.

12/LAV EN LILLE FILM - OPTAGELSE præmateriale 1 lærer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

G-MAIL (GOOGLE)

Mødelokale Mørkhøjvej Brønshøj. Seniorleder Karl-Ejner Andersen Seniorleder@kbu.dk

Modning af hjernen hos børn og unge mennesker belyst med MR skanning:

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Arkiv i SIMU World. Arkivet ligger i SIMU World, og gør det muligt at arkivere jeres sager direkte i SIMU World.

Transkript:

Opgave: BOW Bowling danish BOI 0, dag. Tilgængelig hukommelse: 6 MB. 30.04.0 Byteasar er fan af både bowling og statistik. Han har nedskrevet resultaterne af et par tidligere bowling spil. Desværre er nogle af tegnene i noterne blevet slørede og dermed ulæselige. Byteasar beder dig om at skrive et program til at beregne antallet af forskellige spil, der er i overensstemmelse med hans notater. Rules of Bowling Et spil bowling består af n rammer: n simple rammer og en sidste ramme. I et typisk spil er n = 0. Ved begyndelsen af hver ramme opstilles 0 kegler i enden af en bane og hver spiller får højest to (eller tre for den sidste ramme) forsøg (skud) til at kaste en bowlingkugle ned af banen og forsøge at vælte så mange kegler som muligt. Hver ramme er nedskrevet ved hjælp af to (for en simpel ramme) eller tre (for den sidste ramme) tegn. For hvert skud får spilleren det samlede antal kegler væltet af det skud som basispoint. Spillerens basispoint i hver ramme er summen af basispointene for alle (to eller tre) skud i rammen. Hvis alle 0 kegler er væltet i en simpel ramme (og 0 basispoint dermed er optjent) får spilleren ekstra bonuspoint. For en simpel ramme er reglerne følgende: Hvis en spiller vælter alle 0 kegler i første skud i en ramme, får hun en strike og rammen slutter. Som bonuspoint får hun summen af basispointene for hendes to næste skud. En strike er nedskrevet som x-. Hvis en spiller vælter alle 0 kegler ved at bruge to skud i en ramme, får hun en spare. Som bonuspoint får hun basispointene for hendes næste skud. En spare er nedskrevet som A/, hvor A er det et-cifrede antal af kegler, der blev væltet af rammens første skud. Hvis 9 eller færre kegler blev væltet efter begge skud i en ramme, får spilleren bare basispointene for rammen og rammen er nedskrevet som AB, hvor A er antallet af kegler væltet i det første skud og B er antallet af kegler væltet i det andet skud (A + B < 0). Bemærk at bonuspoint er inkluderet i scoren for den ramme, hvor den tilsvarende strike eller spare blev lavet. Dette gælder på trods af at antallet af bonuspoint afhænger af de efterfølgende skud. For den sidste ramme er reglerne følgende: I første omgang får spilleren to skud i denne ramme. Hvis 9 eller færre kegler er væltet efter de to første skud, slutter rammen. Ellers (hvis det første skud er en strike eller de to første skud er en spare) får spilleren et ekstra skud (i alt 3). Hvis spilleren får en spare med de første to skud bliver 0 nye kegler stillet op til det tredje skud. Hvis spilleren får en strike i det første skud bliver 0 nye kegler stillet op til andet skud, og hvis andet skud er en strike bliver 0 nye kegler stillet op til det tredje skud. Scoren af den sidste ramme er det samlede antal væltede kegler (ingen bonuspoint bliver givet for strikes og spares i denne ramme). I alt er der syv mulige konfigurationer af den sidste ramme, som er beskrevet i følgende tabel (hvor A og B er et-cifrede heltal): v. 3 Bowling /3 www.boi0.mimuw.edu.pl

Betegnelse Beskrivelse Rammens score xxx tre strikes i træk 30 xxa to strikes i træk og derefter et skud der vælter A kegler 0 + A xa/ en strike og derefter en spare, hvor A kegler væltes på første skud 0 xab en strike og to følgende skud, der vælter hhv. A og B kegler (A + B < 0) 0 + A + B A/x en spare, hvor A kegler væltes i første skud, og derefter en strike 0 A/B en spare, hvor A kegler væltes i første skud, og derefter et skud der vælter B 0 + B kegler AB- to skud hvor hhv. A og B kegler væltes (A + B < 0) A + B Hvert spil er beskrevet som en sekvens af n + tegn. Efter et spil er spillet kan man udregne scoren for hver ramme. For eksempel for et spil med n = 0 beskrevet som 08x-7//x-x-344/0/x var spillerens point i hver ramme som beskrevet i det følgende: Input Ramme Betegnelse Basispoint Bonuspoint Rammens score Total 08 0 + 8 8 8 x- 0 7 + 3 0 8 3 7/ 7 + 3 40 4 / + 8 0 0 60 x- 0 0 + 8 6 x- 0 + 3 97 7 3 + 3 0 8 44 4 + 4 8 0 9 / + 9 0 0 0 sidste 0/x 0 + 0 + 0 0 40 Den første linje indeholder et heltal q ( q ), der angiver antallet af test cases. De følgende 3q linjer indeholder beskrivelser af disse test cases. Hver test cases er beskrevet af tre linjer. Den første linje i en test case beskrivelse indeholder et heltal n ( n 0), antallet af rammer. Den anden linje indeholder en sekvens af n + tegn, beskrivelsen af spillet i Byteasars noter. Slørede tegn er erstattet af?. Den tredje linje indeholder n heltal, antallet af point efter hver ramme, separeret af mellemrum. I hvert af disse tal er enten ingen af cifrene slørede, eller alle cifrene er slørede. De tal, hvor alle cifrene er slørede, er erstattet af -. Output Dit program skal udskrive q linjer, en linje per test case i samme rækkefølge som de er givet. For hvert test case skal dit program udskrive et heltal: antallet af forskellige spil der kunne svare til det givne test case. To spil er forskellige hvis og kun hvis der er et skud hvor de er forskellige, dvs. deres (n + )- tegns spilbeskrivelse er forskellige. Du kan antage at der er mindst et spil, der kunne svare til det givne test case. Det garanteres at hvert svar kan være i en signed 64-bit integer. Eksempler v. 3 Bowling /3 www.boi0.mimuw.edu.pl

0 08x-7//x?x-3??/??? 8-40 60 8 97 0 0 0 40 x-x-3?/00-37 4 9 0 Forklaring af eksempler: Betragt først det første test case. I ramme er - den eneste mulighed efter x. I ramme 8 fik spilleren 8 point samlet. Der er 9 måder hvorpå dette kan være sket: 0 + 8, + 7,..., 8 + 0. Der var ikke nogen bonuspoint i ramme 9, og derfor var der ikke nogen point i det første skud i den sidste ramme. Derefter er den eneste måde hvorpå man kan få 0 point på de sidste to skud ved en spare og en efterfølgende strike. Der er derfor 9 forskellige spil, som kunne passe sammen med første test case. I andet test case kunne der stå enhver af tegnene fra 0 til 9. Yderligere eksempel: I konkurrencesystemet er der et ekstra eksempel med flere testcases hvor n =. Bedømmelse Delopgave Betingelser (i hvert test case) Point højst seks? -tegn i input sekvensen 6 svaret er højst 0 9 7 3 intet spil, hvis beskrivelse indeholder x eller /, er i overensstemmelse med 6 Byteasars noter 4 hvert test case slutter med 00- (dvs. spilleren fik 0 point i den sidste ramme) og de 3 sidste min(3, n) tal i den tredje linje er alle - Ingen yderligere begrænsninger 8 v. 3 Bowling 3/3 www.boi0.mimuw.edu.pl

Opgave: EDI Editor danish BOI 0, dag. Tilgængelig hukommelse: MB. 30.04.0 Byteasar er programmør og arbejder på en revolutionær text editor. I editoren er der to typer operationer: editoperationer, hvor man kan ændre i teksten og fortryd-operationer, hvor man kan fortryde en forrig operation. En af de innovative funktioner i editoren er dens multilevel fortryd operation. Denne fungerer som følger: En edit-operation har level 0. En fortryd-operation har level i (for i =,,...) og fortryder den sidste operation af af level højest i, der ikke er blevet fortrudt. For eksempel kan en fortryd-operation af level kun fortryde edit-operationer, mens en fortryd-operation af level kan fortryde både edit-operationer og fortryd-operationer af level, men ikke fortryd-operationer af level eller højere. Mere formelt siger vi at hver af de udførte operationer kan være i én af to tilstande: aktiv eller fortrudt. Lad X være en af operationerne. Umiddelbart efter vi har udført operation X er denne i tilstanden aktiv. Hvis X var en fortryd-operation af level i finder vi den seneste operation af level højest i der er i tilstanden aktiv (kald denne X ) og ændrer dens tilstand til fortrudt. Hvis X også er en fortryd-operation skal vi ændre den operation, som X har fortrudt (kald denne X ) til at være aktiv igen. Hver gang tilstanden for en fortryd-operation, X j, der tidligere havde fortrudt en anden operation, X j+, ændres skal vi altså også ændre tilstanden for X j+ (hvilket kan resultere i at vi skal ændre flere tilstande). Kæden af ændringer slutter når en edit-operation er nået. For at gøre det hele mere overskueligt repræsenterer vi det nuværende indhold af editoren med et enkelt heltal s, der kaldes editor-tilstanden (og er lig 0 i begyndelsen). Hver edit-operation specificerer den editortilstand som den producerer. Editor-tilstanden er netop den tilstand specificeret af den sidste edit-operation i tilstanden aktiv (eller 0 hvis ingen edit-operation er i tilstanden aktiv). Din opgave er at skrive et program der holder styr på editor-tilstanden. Lad os se på et eksempel: Følgende tabel viser nogle operationer udført af Byteasar og editor-tilstanden efter at have udført hver af dem. Symbolet E s angiver en edit-operation, der ændrer editor-tilstanden til s, og symbolet U i angiver en fortryd-operation af level i. Operation E E E U U U 3 E 4 U U U E Editor-tilstand 0 4 0 Først udførte Byteasar tre edit-operationer. Editor-tilstanden ændredes således fra 0 til, så til, og endelig til. Derefter udførte han to fortryd-operationer af level, der fortrød operationerne E og E (altså ændrede disse operationers tilstand til fortrudt). Dette gendannede editor-tilstanden til. Den efterfølgende fortryd-operation af level 3 fortrød den forrige operation U (ændrede dens tilstand til fortrudt), hvilket gendannede operation E (satte dens tilstand til aktiv igen), hvilket ændrede editor-tilstanden til. Derefter blev E 4 udført, som satte editor-tilstanden til 4. Operationen U fortrød operation E 4, operation U fortrød den genaktiverede operation E, derefter fortrød operation U den første edit-operation, E. Til sidst blev der udført en E operation, der satte editor-tilstanden til igen. Input Den første linje af input indeholder et positivt heltal n, der angiver antallet af operationer udført af Byteasar. De næste n linjer indeholder beskrivelserne af de forskellige operationer, en pr. linje: Hver beskrivelse er et heltal a i ( n a i n, a i 0). Hvis a i > 0 svarer det til en edit-operation, der ændrer editor-tilstanden til a i. Hvis a i < 0 svarer den til en fortryd-operation af level a i. Du kan antage, at der for hver fortryd-operation vil være en operation med tilstanden aktiv af lavere level som kan fortrydes. v. 3 Editor / www.boi0.mimuw.edu.pl

Output Dit program skal producere n linjer. Den ite linje skal indeholde et heltal der er editor-tilstanden efter at have udført de første i operationer fra inputtet. Eksempler - - -3 4 - - - 4 0 Bedømmelse Delopgave Betingelser Point n 000 0 n 300 000 og alle operationer er enten E i eller U 3 n 300 000 og kun det sidste tal i output vil blive bedømt (dog skal de første 8 n tal være heltal mellem 0 og n) 4 n 300 000 37 v. 3 Editor / www.boi0.mimuw.edu.pl

Opgave: NET Network danish BOI 0, dag. Tilgængelig hukommelse: 6 MB. 30.04.0 Bytelands regering har besluttet at det er tid til at forbinde deres lille land til internettet, så indbyggerne kan deltage i programmeringskonkurrencer og se film af nuttede katte. Da netværket skulle bygges valgte de firmaet Internet Optimists Inc. til at stå for at forbinde alle de n computere i Byteland. Forbindelserne er udgjort af direkte links mellem par af computere således at enhver computer er forbundet til enhver anden computer via en sekvens af links. Byteland er ikke et rigt land på nogen måde, så for at minimere prisen er netværket struktureret i form af et træ (dvs. at der er præcis n direkte links i alt). Først alt for sent blev det indset, at denne løsning har et alvorligt problem. Hvis bare et eneste link går i stykker bliver Bytelands computere splittet så det ikke længere er muligt for alle computere at kommunikere med hinanden. For at råde bod på denne fejl er det blevet besluttet, at netværket mindst skal kunne tolerere at ét enkelt link går i stykker. Din opgave er at hjælpe Internet Optimists Inc. med at forbedre netværket på den billigste måde. Givet netværkstopologien for Byteland (dvs. hvilke n par af computere der er forbundet af direkte links) skal du finde det mindste antal af links der skal tilføjes for at netværket forbliver forbundet hvis et enkelt link ødelægges. Input Den første linje af input indeholder et positivt heltal n (n 3) (antallet af computere i Byteland). For simplicitet er alle computere nummereret fra to n. Hver af de følgende n linjer indeholder et par af heltal a og b ( a, b n, a b) der beskriver et direkte link mellem computerne a og b. Output Den første linje af output skal indeholde et heltal k, det minimale antal af links der skal tilføjes til netværket. I hver af de følgende k linjer skal dit program skrive et par af heltal a og b ( a, b n, a b) der specificerer hvilke computere der skal forbindes af et link. Linksne kan skrives i en vilkårlig rækkefølge. Hvis der er mere end én løsning må dit program skrive en vilkårlig af dem. v. 3 Network / www.boi0.mimuw.edu.pl

Eksempler 6 3 4 4 6 4 3 4 6 3 6 8 3 3 4 4 3 6 3 7 3 8 6 7 3 4 8 3 6 7 8 4 Bedømmelse Delopgave Betingelser Point n 0 8 n 000 4 3 n 00 000 37 v. 3 Network / www.boi0.mimuw.edu.pl