Kezdőoldal » Számítástechnika » Programozás » Hogy kéne megoldani ezt a...

Hogy kéne megoldani ezt a feladatot? (C# de mindegy a nyelv végülis)

Figyelt kérdés

Józsika egy osztálytársával játszik. Van N darab üveggolyójuk egy kupacban. N 1-100000 intervallumban lehet.

Egyik körben Józsika vesz el X darab golyót a kupacból, másik körben az osztálytársa úgy, hogy X csak négyzet szám lehet, tehát 1, 4, 9, 16, 25 stb. Az a játékos nyer, aki az utolsó golyót elveszi.

Ha optimálisan játszanak, megnyerheti-e Józsika a játékot, feltéve, hogy mindig ő kezd?



2020. júl. 11. 18:36
1 2 3 4 5 6
 41/51 anonim ***** válasza:
100%

" Tudok megoldást, nem segítek" 4 szavazat.


Annak a 4 embernek a válaszát én is várnám. :)

2020. júl. 12. 00:05
Hasznos számodra ez a válasz?
 42/51 anonim ***** válasza:
76%

Mivel fogalmunk sincs, hogy mi az optimális, de abból kiindulva, hogy az N lehet négyzetszám is, így biztos van olyan helyzet, hogy józsika nyerhet.


[link]

2020. júl. 12. 06:05
Hasznos számodra ez a válasz?
 43/51 A kérdező kommentje:
#42 ez micsoda, amit belinkeltél?
2020. júl. 12. 07:10
 44/51 anonim ***** válasza:
100%

> Matematikai képletre kell megoldás

> Ha meg van a formula akkor, a formulát használod. Ha az N szám megfelel a formulára akkor return false


FYI: nem minden algoritmus fejezhető ki formulában / képletben.

2020. júl. 12. 07:29
Hasznos számodra ez a válasz?
 45/51 anonim ***** válasza:
100%

Ez klasszikus dp gyakorló feladat, csak most épp Józsikával meg golyókkal megfogalmazva.

[link]

2020. júl. 12. 07:58
Hasznos számodra ez a válasz?
 46/51 anonim ***** válasza:
84%

Ja, most nézem, hogy C# van a kérdésben, én C++-t írtam, de kb. annyi a különbség, hogy vector<bool> helyett bool[]-t használnék.

Nyilván van top-down dp megoldás is, az valszeg lassabb a rekurzivitásból adódóan, de nem próbáltam ki.

2020. júl. 12. 08:06
Hasznos számodra ez a válasz?
 47/51 A kérdező kommentje:
Működik, köszönöm szépen :D
2020. júl. 12. 08:13
 48/51 anonim ***** válasza:
100%
#45: el tudod magyarázni mit csinál a kódod és miért működik, vagy csak kigugliztál egy megoldást és beröffented ide hogy milyen istencsászár vagy?
2020. júl. 12. 08:14
Hasznos számodra ez a válasz?
 49/51 anonim ***** válasza:
86%

Istencsászár? Ilyen szintű feladatot hamarabb oldanak meg emberek Div 2-es versenyeken, minthogy elolvasnám mi a kérdés.


Elkezded felépíteni alulról a dp táblát (ezért bottom-up dp).

Mivel csak négyzetszámokat lehet elvenni, ezért értelemszerűen azokat kell megpróbálni. Ha adott játékos el tud venni egy négyzetszámot úgy, hogy a maradék vereséghez vezet (!dp[i-j*j], akkor az nyerő ág. Így mész fel n-ig, mivel arra vagyunk kíváncsiak, hogy az n kiindulópontból nyerhetünk-e, de ehhez ismerni kell az alatta lévő részfák eredményét.

2020. júl. 12. 09:03
Hasznos számodra ez a válasz?
 50/51 anonim ***** válasza:
100%

#49: köszi, ez egy korrekt magyarázat


sorry a toxic reakciómért

2020. júl. 12. 09:27
Hasznos számodra ez a válasz?
1 2 3 4 5 6

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!