lausnir á völdum dæmum2 16 stig lið dæmahöfundur: bjarki lausnir á völdum dæmum giskaðu á...
TRANSCRIPT
Lausnir á völdum dæmum
19. mars 2016
Lausnir á völdum dæmum
Dæmahöfundar
Bjarki Ágúst GuðmundssonHjalti MagnússonTómas Ken Magnússon
Lausnir á völdum dæmum
Dæmayfirferð
Arnar Bjarni ArnarsonHlynur Óskar GuðmundssonJames Elías SigurðarsonKristmundur Ágúst JónssonUnnar Freyr Erlendsson
Lausnir á völdum dæmum
Giskaðu á svarið
Keppendur DómararStysta lausn 1 1
Lengsta lausn 27 33Tími Lið
Fyrsta lausn 3:34:16 Magic Mike XXL
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
0 1 02
16
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Giskaðu á svarið
Dæmið
Giska á heiltölu á milli 0 og 1 000.
Lausn
Búum til forrit sem skrifar út giskið okkar:
1 print 821
Stigafjöldinn segir til um hversu langt við erum frá réttusvari, eða 0 ef við erum lengra en 100 frá
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Giskaðu á svarið
Lausn
Nóg að giska á 100, 300, 500, 700, 900Einhver af þessum tölum mun gefa okkur stigafjölda semer stærri en 0Ef talan X fær stigafjöldann Y (sem er stærri en 0), þá ersvarið annaðhvort X − Y eða X + YPrufum bæði
Versta falli 7 gisk
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Liðaskipting
Keppendur DómararStysta lausn 5 6
Lengsta lausn 37 27Tími Lið
Fyrsta lausn 0:06:59 Los Magos
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
0 1
8
0
16
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Liðaskipting
Dæmið
Athuga hvort hægt sé að skipta N keppendum í þriggja mannalið þannig að enginn sé útundan.
Lausn
Þrír í hverju liði, svo fjöldi liða er N/3Bara hægt ef deilingin gefur engan afgang
1 print "Jebb" if N % 3 == 0 else "Neibb"
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Liðaskipting
Lausn
N ≤ 10100
Nota Python eða BigInteger í C#/JavaNota deilireglur:
Tala er deilanleg með 3 ef þversumma hennar erdeilanleg með 3
Bæði 123 og 1 + 2 + 3 = 6 eru deilanlegar með 3Hvorki 124 né 1 + 2 + 4 = 7 eru deilanlegar með 3
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Röknet
Keppendur DómararStysta lausn 71 18
Lengsta lausn 107 106Tími Lið
Fyrsta lausn 4:38:49 12" Python
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
30 0 0
2
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Röknet
Dæmið
Gefið röknet og sanngildi sem sett eru inn í netið, hvaðasanngildi koma út?
Lausn
Ógnvekjanlegt við fyrstu sýn, en. . .„Ef útgangur hlutar A er tengdur við inngang hlutar B, þámun hlutur A vera skilgreindur í inntakinu áður en hlutur Ber skilgreindur í inntakinu“
Göngum í gegnum hlutina í sömu röð og þeir koma íinntakinuEf búið er að reikna sanngildið fyrir alla hlutina á undan, þágetum við reiknað sanngildið fyrir núverandi hlut áeinfaldan hátt
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Röknet
Lausn
Látum v [x ] tákna sanngildi breytunnar xÞá verður þetta að einskonar forritunarmáli:Inntak SkipunINNTAK x SATT v [x ] = trueINNTAK x OSATT v [x ] = falseOG x y z v [z] = v [x ] ∧ v [y ]EDA x y z v [z] = v [x ] ∨ v [y ]EKKI x z v [z] = ¬v [x ]UTTAK x print v [x ]
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Roomba
Keppendur DómararStysta lausn ? 85
Lengsta lausn ? 118Tími Lið
Fyrsta lausn ? ?
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
2 20 0 0
Stig
Lið
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba
Dæmið
Finna stystu rás sem heimsækir alla reiti í n ×m borði.
Lausn
Þrjú tilfellin = 1 eða m = 1Annað hvort n eða m er sléttBæði n og m eru oddatölur
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1 eða m = 1
Eina leiðin er að fara fram og til bakaFjöldi hreyfinga er 2(n ·m − 1)
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 1
n = 1, m = 5
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n eða m slétt
Alltaf hægt að velja stystu mögulegu leið (Hamilton-rás)Fjöldi hreyfinga er n ·m
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 2
n = 5, m = 6
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n og m oddatölur
Engin leið sem heimsækir hvern reit nákvæmlega einusinni (engin Hamilton-rás)Fjöldi hreyfinga er n ·m + 1
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Roomba - Tilfelli 3
n = 5, m = 7
Dæmahöfundar: Hjalti, Bjarki Lausnir á völdum dæmum
Bitaflipp
Keppendur DómararStysta lausn ? 34
Lengsta lausn ? 64Tími Lið
Fyrsta lausn ? ?
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
30 0 0 0
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Dæmið
Gefinn bitastrengur, „flippið“ bitunum í einhverjum hlutstrengþannig að fjölda 1-bita í útkomunni sé hámarkaður.
Lausn
Ef 0-biti er inni í hlutstrengnum, þá mun vera einum fleiri1-bitar í útkomunniEf 1-biti er inni í hlutstrengnum, þá mun vera einum færri1-bitar í útkomunni
1 0 0 1 0 0 1
1 1 1 0 0 0 1
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Dæmið
Gefinn bitastrengur, „flippið“ bitunum í einhverjum hlutstrengþannig að fjölda 1-bita í útkomunni sé hámarkaður.
Lausn
Ef 0-biti er inni í hlutstrengnum, þá mun vera einum fleiri1-bitar í útkomunniEf 1-biti er inni í hlutstrengnum, þá mun vera einum færri1-bitar í útkomunni
1 0 0 1 0 0 1
1 1 1 0 0 0 1
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Dæmið
Gefinn bitastrengur, „flippið“ bitunum í einhverjum hlutstrengþannig að fjölda 1-bita í útkomunni sé hámarkaður.
Lausn
Ef 0-biti er inni í hlutstrengnum, þá mun vera einum fleiri1-bitar í útkomunniEf 1-biti er inni í hlutstrengnum, þá mun vera einum færri1-bitar í útkomunni
1 0 0 1 0 0 1
1 1 1 0 0 0 1
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Dæmið
Gefinn bitastrengur, „flippið“ bitunum í einhverjum hlutstrengþannig að fjölda 1-bita í útkomunni sé hámarkaður.
Lausn
Ef 0-biti er inni í hlutstrengnum, þá mun vera einum fleiri1-bitar í útkomunniEf 1-biti er inni í hlutstrengnum, þá mun vera einum færri1-bitar í útkomunni
1 0 0 1 0 0 1
1 0 0 1 1 1 1
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Dæmið
Gefinn bitastrengur, „flippið“ bitunum í einhverjum hlutstrengþannig að fjölda 1-bita í útkomunni sé hámarkaður.
Lausn
Ef 0-biti er inni í hlutstrengnum, þá mun vera einum fleiri1-bitar í útkomunniEf 1-biti er inni í hlutstrengnum, þá mun vera einum færri1-bitar í útkomunni
1 0 0 1 0 0 1
1 1 1 0 1 1 1
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Lausn
Breytum 1-bitum í töluna −1 og 0-bitum í töluna 1
1 0 0 1 0 0 1
-1 1 1 -1 1 1 -1
Viljum finna samliggjandi hlutrunu með hámarks summu
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Hæg lausn: Prufa allar hlutrunur og reikna summu
-1 1 1 -1 1 1 -1
1 mx = 02 for j in 1..n:3 for i in 1..i:4 sm = 05 for k in i..j:6 sm += arr[k]7 mx = max(mx, arr[k])8 print mx
Getum við reiknað summuna af ákveðinni hlutrunu hratt?
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
Smá trikk: sum(i , j) = sum(1, j)− sum(1, i − 1)
-1 1 1 -1 1 1 -1
=
-1 1 1 -1 1 1 -1
−
-1 1 1 -1 1 1 -1
Reiknum sum(1, i) fyrir öll i í byrjun
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
1 sum[0] = 02 for i in 1..n:3 sum[i] = arr[i] + sum[i-1]4
5 mx = 06 for j in 1..n:7 for i in 1..j:8 mx = max(mx, sum[j] - sum[i-1])9 print mx
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
1 sum[0] = 02 for i in 1..n:3 sum[i] = arr[i] + sum[i-1]4
5 mx = 06 for j in 1..n:7 mn = 1000000000000000000008 for i in 1..j:9 mn = min(mn, sum[i-1])
10 mx = max(mx, sum[j] - mn)11 print mx
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp - Hlutruna með hámarks summu
Lausn
1 sum[0] = 02 for i in 1..n:3 sum[i] = arr[i] + sum[i-1]4
5 mx = 06 mn = 1000000000000000000007 for j in 1..n:8 mn = min(mn, sum[i-1])9 mx = max(mx, sum[j] - mn)
10 print mx
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bitaflipp
Lausn
Passa upp á sértilfelli sem innihalda bara 1-bita
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Samhverfudulritun
Keppendur DómararStysta lausn 25 30
Lengsta lausn 25 43Tími Lið
Fyrsta lausn 1:49:48 Níels Karlsson
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
3 46
2 1
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Samhverfudulritun
Dæmið
Fyrir hvert k á milli 1 og 100, finna stærstu samhverfu minni en2k .
Lausn
Allt í lagi þó lausnin sé hægLáta forritið malla á eigin tölvuSkila úttakinu beint á Kattis
Skoða 2k , 2k − 1, 2k − 2, . . .Skrifa út fyrstu samhverfu sem við finnumHægt að ná rúmlega 60 stigum ef forritið fær að mallanógu lengiOf hægt fyrir stór k
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Samhverfudulritun
Lausn
Tökum k = 92 sem dæmi
49517601571415210995964968964951760157141441417510671594
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Samhverfudulritun
Lausn
Tökum k = 92 sem dæmi
49517601571415 2109959649689649517601571414 41417510671594
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Samhverfudulritun
Lausn
Tökum k = 92 sem dæmi
49517601571415 2109959649689649517601571414 41417510671594
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Dans
Keppendur DómararStysta lausn ? 19
Lengsta lausn ? 56Tími Lið
Fyrsta lausn ? ?
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
02 3
0 0
Stig
Lið
Dæmahöfundar: Bjarki, Tómas Lausnir á völdum dæmum
Dans
Dæmið
Gefin gagntæk vörpun f , reikna f (k).
Lausn
Hægt að horfa á danshreyfingarnar sem áttað netTökum 3 5 1 2 4 sem dæmi
13
25
4
Netið mun eingöngu samanstanda af svona rásumManneskja i byrjar í hnút i og fer svo yfir k leggi
Dæmahöfundar: Bjarki, Tómas Lausnir á völdum dæmum
Bolir
Keppendur DómararStysta lausn ? 33
Lengsta lausn ? 52Tími Lið
Fyrsta lausn ? ?
1–25 26–50 51–75 76–99 1000
5
10
15
20
25
30
0 0 0 0 0
Stig
Lið
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Dæmið
Úthluta bolum til keppenda þannig að hver keppandi fái bol semer hvorki of stór né of lítill.
Lausn
Höfum tvær gerðir af hlutumPör af hlutum af mismunandi gerðum geta „passað saman“Viljum para saman hluti af mismunandi gerðum, þannig aðallir paraðir hlutir „passi saman“
Þetta kallast spyrðing í tvíhlutaneti (e. bipartite matching)Til skilvirk reiknirit, t.d. með netaflæðiFjöldi keppenda og bola er mjög stór, svo þetta er ofhægt
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Aftur gott að setja þetta upp grafískt:Bolur af stærð x táknaður með punkti í xKeppandi sem vill stærð frá y til z táknaður meðlínustriki frá y til z
1 2 3 4 5 6 7
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Bolir
Lausn
Göngum á bolinu frá vinstri til hægriAf þeim keppendum sem geta fengið þennan bol, tökumþann sem hefur vinstrasta hægri endapunkt
1 2 3 4 5 6 7
Nota forgangsbiðröð (e. priority queue) til að útfæra íO(n log n) tíma
Dæmahöfundur: Bjarki Lausnir á völdum dæmum
Skemmtileg tölfræði
Minnsti fjöldi lína sem þarf til að leysa öll Commodore 64:406Fjöldi committa í Git repositoryinu okkar: 233Heildarfjöldi lína í öllum skrám sem við koma verkefnunum:4828758Fjöldi stafsetningavilla í fyrirspurnum sem Hjalti sér eftir: 1Fjöldi dæma sem voru einfaldari en við héldum: 1
Lausnir á völdum dæmum