Datatähti 2019 loppu

Samankaltaiset tiedostot
Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Task list Submit code Submissions Scoreboard View queue Edit contest

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

Tietotekniikan valintakoe

Algoritmit 1. Luento 7 Ti Timo Männikkö

Tehtävä: FIL Tiedostopolut

Luku 8. Aluekyselyt. 8.1 Summataulukko

Syötteen ainoalla rivillä on yksi positiivinen kokonaisluku, joka on alle = Luvussa ei esiinny missään kohtaa numeroa 0.

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Algoritmit 1. Luento 8 Ke Timo Männikkö

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Algoritmit 2. Luento 6 Ke Timo Männikkö

Kenguru 2019 Student lukio

Toisessa kyselyssä alueella on 1 ruudussa A ja 3 ruudussa B, joten suosituin ehdokas on B.

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Datatähti 2000: alkukilpailun ohjelmointitehtävä

Kenguru 2019 Ecolier 4. ja 5. luokka

Algoritmit 2. Luento 2 To Timo Männikkö

4. Oheisessa 4x4 ruudukossa jokainen merkki tarkoittaa jotakin lukua. Mikä lukua salmiakki vastaa?

Tehtävä Vastaus

Kenguru 2011 Cadet (8. ja 9. luokka)

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö

Kenguru 2017 Cadet (8. ja 9. luokka)

Algoritmit 2. Luento 7 Ti Timo Männikkö

XXIII Keski-Suomen lukiolaisten matematiikkakilpailu , tehtävien ratkaisut

Kenguru 2019 Cadet (8. ja 9. luokka)

Kenguru 2013 Cadet (8. ja 9. luokka)

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Puzzle-SM Loppukilpailu Oulu

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Kenguru 2017 Benjamin (6. ja 7. luokka)

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Algoritmit 2. Luento 6 To Timo Männikkö

Kenguru 2013 Student sivu 1 / 7 (lukion 2. ja 3. vuosi)

Ei-yhteydettömät kielet [Sipser luku 2.3]

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Algoritmit 2. Luento 9 Ti Timo Männikkö

Kenguru 2012 Cadet (8. ja 9. luokka)

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Turingin koneen laajennuksia

Python-ohjelmointi Harjoitus 2

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Kenguru 2015 Cadet (8. ja 9. luokka)

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Algoritmit 1. Luento 9 Ti Timo Männikkö

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Algoritmit 2. Luento 4 To Timo Männikkö

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

Kenguru 2018 Ecolier (4. ja 5. luokka)

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Algoritmit 1. Demot Timo Männikkö

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Algoritmi on periaatteellisella tasolla seuraava:

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

c) 22a 21b x + a 2 3a x 1 = a,

Kenguru 2019 Benjamin 6. ja 7. luokka

Kysymyksiä koko kurssista?

Kenguru 2017 Cadet (8. ja 9. luokka)

Kenguru Benjamin, ratkaisut (1 / 6) luokka

Valmistelut: Aseta kartiot numerojärjestykseen pienimmästä suurimpaan (alkeisopiskelu) tai sekalaiseen järjestykseen (pidemmälle edenneet oppilaat).

{ 2v + 2h + m = 8 v + 3h + m = 7,5 2v + 3m = 7, mistä laskemmalla yhtälöt puolittain yhteen saadaan 5v + 5h + 5m = 22,5 v +

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

Kenguru 2017 Student lukio

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Algoritmit 2. Luento 4 Ke Timo Männikkö

Kenguru 2012 Benjamin sivu 1 / 8 (6. ja 7. luokka) yhteistyössä Pakilan ala-asteen kanssa

Algoritmit 2. Luento 10 To Timo Männikkö

Kenguru 2019 Ecolier Ratkaisut

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Puzzle SM Pistelasku

Kenguru 2016 Ecolier (4. ja 5. luokka)

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

Kenguru 2015 Ecolier (4. ja 5. luokka)

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

finnish BOI 2015, päivä 1. Muistiraja: 256 MB

Tietorakenteet, laskuharjoitus 7, ratkaisuja

A TIETORAKENTEET JA ALGORITMIT

Kenguru Ecolier, ratkaisut (1 / 5) luokka

Algoritmit 1. Luento 10 Ke Timo Männikkö

2016/07/05 08:58 1/12 Shortcut Menut

Kenguru 2012 Student sivu 1 / 8 (lukion 2. ja 3. vuosi)

Transkriptio:

Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio standard 1.00 s 512 MB F Robotti standard 1.00 s 512 MB G Luokittelija standard 1.00 s 512 MB 1 of 13 1/17/19, 9:36 PM

A Summa Tehtäväsi on selvittää, monellako tavalla kokonaisluvun n voi esittää kolmen eri positiivisen kokonaisluvun summana. Esimerkiksi jos n = 9, ratkaisuja on 3: Syöte Syötteen ainoalla rivillä on kokonaisluku n. Tuloste Tulosta yksi rivi, jolla on tehtävän vastaus. Esimerkki Syöte: 9 Tuloste: 3 1 + 2 + 6 = 9 1 + 3 + 5 = 9 2 + 3 + 4 = 9 Arvostelu Jokaisessa testissä pätee 1 n 1000. Saat tehtävästä 100 pistettä, jos ohjelmasi antaa oikean vastauksen joka testissä. 2 of 13 1/17/19, 9:36 PM

B Bittijono Sinulle annetaan bittijono, jossa on n bittiä. Tehtäväsi on laskea, monessako yhtenäisessä osajonossa on parillinen määrä ykkösbittejä. Syöte Syötteen ainoalla rivillä on bittijono, jossa on n bittiä. Tuloste Tulosta yksi kokonaisluku: monessako osajonossa on parillinen määrä ykkösbittejä. Esimerkki Syöte: 01011 Tuloste: 6 Osatehtävä 1 (21 pistettä) 1 n 100 Osatehtävä 2 (27 pistettä) 1 n 5000 Osatehtävä 3 (52 pistettä) 1 n 5 10 5 3 of 13 1/17/19, 9:36 PM

C Auringonlasku Kaupungissa on rivissä n pilvenpiirtäjää. Laskeva aurinko valaisee pilvenpiirtäjiä vasemmalta, ja pilvenpiirtäjä on auringossa, jos se on korkeampi kuin mikään sen vasemmalla puolella oleva pilvenpiirtäjä. Tehtäväsi on vastata q kyselyyn, joissa jokaisessa annetaan väli [a, b]. Jos oletetaan, että vain välin [a, b] pilvenpiirtäjät ovat olemassa, moniko niistä on auringossa? Syöte Syötteen ensimmäisellä rivillä on kaksi kokonaislukua n ja q: pilvenpiirtäjien määrä ja kyselyjen määrä. Pilvenpiirtäjät on numeroitu 1, 2,, n. Syötteen toisella rivillä on n kokonaislukua h 1, h 2,, h n : pilvenpiirtäjien korkeudet. Lopuksi syötteessä on q riviä, joista kullakin on kaksi kokonaislukua a ja b ( 1 a b n ): kysely koskee väliä [a, b]. Tuloste Tulosta kutakin kyselyä kohden yksi kokonaisluku omalle rivilleen: auringossa olevien pilvenpiirtäjien määrä. Esimerkki Syöte: 5 3 4 1 2 2 3 1 5 2 5 3 4 Tuloste: 1 3 1 Osatehtävä 1 (16 pistettä) 1 n, q 2000 1 h i 10 9 Osatehtävä 2 (35 pistettä) 1 n 10 5 1 q 2 10 5 4 of 13 1/17/19, 9:36 PM

1 h i 100 Osatehtävä 3 (49 pistettä) 1 n 10 5 1 q 2 10 5 1 h i 10 9 5 of 13 1/17/19, 9:36 PM

D Binääripuu Binääripuussa on n tasoa ja puu on täydellinen, eli jokaisella solmulla on kaksi lasta alinta tasoa lukuun ottamatta. Puun solmut on indeksoitu niin, että juuren indeksi on 1 ja solmun k vasemman ja oikean lapsen indeksit ovat 2k ja 2k + 1. Puussa on lisäksi m kiellettyä kaarta, joita pitkin ei saa kulkea. Puusta muodostetaan verkko peilaamalla se lehtisolmuista. Monellako tavalla verkossa voi muodostaa polun, joka alkaa ja päättyy alkuperäisen puun juuressa, sisältää vähintään yhden kaaren eikä kulje monta kertaa saman kaaren kautta? Esimerkiksi seuraavassa verkossa on 12 mahdollista polkua: Syöte Syötteen ensimmäisellä rivillä on kaksi kokonaislukua n ja m: puun korkeus ja kiellettyjen kaarien määrä. Tämän jälkeen syötteessä on m kokonaislukua a 1, a 2,, a m, kukin omalla rivillään. a Luku a i tarkoittaa, että solmujen a i ja i välistä kaarta ei saa kulkea. Kukin tällainen 2 kaari annetaan kerran. Tuloste Tulosta yksi kokonaisluku: erilaisten polkujen määrä modulo 10 9 + 7. Esimerkki Syöte: 4 3 10 6 of 13 1/17/19, 9:36 PM

5 13 Tuloste: 12 Kuva vastaa esimerkkisyötettä. Kielletyt kaaret on merkitty punaisella. Osatehtävä 1 (23 pistettä) 2 n 6 Osatehtävä 2 (26 pistettä) 2 n 60 m = 0 Osatehtävä 3 (51 pistettä) 2 n 60 0 m 10 5 7 of 13 1/17/19, 9:36 PM

E Funktio Murtoviiva muodostuu pisteistä pisteen välillä on jana. p n, jossa jokaisen kahden peräkkäisen Sinulle annetaan joukko murtoviivoja, ja tehtäväsi on selvittää jokaisesta murtoviivasta, voiko sen esittää funktiona pyörittämällä kuviota. Tämä tarkoittaa, ettei mikään pystysuora viiva leikkaa kuviota kahdesta kohdasta. Syöte Syötteen ensimmäisellä rivillä on kokonaisluku t: murtoviivojen määrä. Tämän jälkeen jokainen murtoviiva kuvataan seuraavasti: Ensimmäisellä rivillä on kokonaisluku n: pisteiden määrä. Tämän jälkeen on n riviä, joista jokaisella on kaksi kokonaislukua x ja y. Mitkään kaksi peräkkäistä pistettä eivät ole samat, eivätkä mitkään kolme peräkkäistä pistettä ole samalla suoralla. Tuloste Tulosta jokaisesta murtoviivasta YES, jos sen voi esittää funktiona, ja NO muuten. Esimerkki Syöte: 2 4 0 0 2 1 3-1 2-2 4 0 0 2 1 3-1 2 0 Tuloste: YES NO Osatehtävä 1 (45 pistettä) 1 t 100 2 n 1000 100 x, y 100 Osatehtävä 2 (55 pistettä),,, p 1 p 2 8 of 13 1/17/19, 9:36 PM

1 t 100 2 n 10 6 n 10 6 10 9 x, y 10 9 9 of 13 1/17/19, 9:36 PM

F Robotti Tehtäväsi on suunnitella robottia varten n m -ruudukko, jonka jokainen ruutu on punainen, vihreä tai sininen. Molemmat luvut n ja m ovat parillisia. Robotti aloittaa ruudukon vasemmasta ylänurkasta ja katsoo kohti ruudukon oikeaa reunaa. Jokaisella vuorolla robotti toimii näin: 1. Liiku yksi ruutu eteenpäin. 2. Jos nykyisen ruudun väri on eri kuin edellisen ruudun väri, käänny 90 astetta oikealle. 3. Vaihda edellisen ruudun väriä: punaisesta tulee vihreä, vihreästä sininen ja sinisestä punainen. Sinun tulee suunnitella väritys niin, että robotti käy jokaisessa ruudussa ja palaa sen jälkeen lähtöruutuun. Robotti saa käydä samassa ruudussa useamman kerran. Robotti ei saa mennä missään vaiheessa ruudukon ulkopuolelle, ja se saa käyttää enintään 10 6 vuoroa tehtäväänsä. Syöte Syötteen ainoalla rivillä on kaksi parillista kokonaislukua n ja m. Tuloste Tulosta n riviä, joista jokaisella on m merkkiä: ruudukon väritys. Värit ovat punainen (R), vihreä (G) ja sininen (B). Jos mitään ratkaisua ei ole olemassa, tulosta vain teksti IMPOSSIBLE. Esimerkki Syöte: 2 4 Tuloste: RRRB BGGG Osatehtävä 1 (12 pistettä) n = 2 2 m 100 Osatehtävä 2 (32 pistettä) 2 n, m 6 10 of 13 1/17/19, 9:36 PM

Osatehtävä 3 (56 pistettä) 2 n, m 100 11 of 13 1/17/19, 9:36 PM

G Luokittelija Tässä tehtävässä sinun tulee rakentaa luokittelija, jonka toiminta perustuu sääntölistaan. Luokittelijalle annetaan syötteenä merkkijono, jonka jokainen merkki on 0 tai 1. Luokittelija käsittelee merkkijonon sääntölistan avulla ja antaa vastauksena "kyllä" tai "ei" riippuen siitä, onko merkkijonolla haluttu ominaisuus. Sääntölista muodostuu säännöistä muotoa x y, missä x on vasen osa ja y on oikea osa. Säännöissä voi esiintyä merkkejä 0 tai 1 sekä apumerkkejä A Z. Lisäksi oikea osa voi olla _, mikä tarkoittaa tyhjää merkkijonoa. Luokittelijan muistissa on merkkijono, joka on aluksi syötteenä annettu merkkijono. Joka askeleella luokittelija etsii listan ensimmäisen säännön, jonka vasen osa esiintyy merkkijonossa, ja korvaa vasemman osan ensimmäisen esiintymän oikealla osalla. Luokittelija toistaa samaa, kunnes listalla ei ole enää mitään sääntöä, jota voisi soveltaa. Jos lopullinen merkkijono on tyhjä, vastaus on "kyllä", ja muuten "ei". Esimerkiksi seuraava luokittelija tarkastaa, onko merkkijonossa tasan yksi nolla. Ensimmäisellä rivillä on sääntöjen määrä ja muut rivit kuvaavat säännöt. 5 B1 -> B B -> _ 10 -> 01 00 -> A 0 -> B Esimerkiksi jos syöte on 1101, sen käsittely etenee näin: 1101 1011 0111 B111 B11 B1 B _. Merkkijono on tyhjä, joten vastaus on "kyllä". Jos taas syöte on 1010, sen käsittely etenee näin: 1010 0110 0101 0011 A11. Merkkijono ei ole tyhjä, joten vastaus on "ei". Tehtävä Suunnittele luokittelija, joka tarkastaa, voiko merkkijonon muodostaa toistamalla kertaa samaa merkkijonoa. Esimerkiksi jos k = 2, merkkijonolle 0101 vastaus on "kyllä" ja merkkijonolle 0100 vastaus on "ei". k Ohjelmasi syötteenä on yksi rivi, jossa on luku k, ja sen tulee tulostaa luokittelijan sääntölista aiemman esimerkin mukaisesti. Rajoitukset Sääntölistalla saa olla enintään 100 sääntöä. Jokaisessa säännössä vasemman osan pituus ja oikean osan pituus saa olla enintään 10 merkkiä. 12 of 13 1/17/19, 9:36 PM

Kun luokittelijaasi testataan, jokaisessa testissä merkkijonon pituus on enintään 100 merkkiä. Luokittelija saa suorittaa merkkijonon käsittelyssä enintään 10000 askelta. Luokittelijan muistissa olevassa merkkijonossa saa olla joka vaiheessa enintään 1000 merkkiä. Osatehtävä 1 (19 pistettä) k = 2 Osatehtävä 2 (24 pistettä) k = 3 Osatehtävä 3 (27 pistettä) k = 4 Osatehtävä 4 (30 pistettä) k = 5 13 of 13 1/17/19, 9:36 PM