1 van 1

[Java] Vlaamse programmeerwedstrijd - Loodgieter

Geplaatst: zo 08 apr 2012, 21:11
door lucpeeters
Hallo,

Ik probeer mij voor te bereiden op de naderende programmeerwedstrijd door vorige opgaves op te lossen. Ik probeer alles te implementeren in Java.

Nu zit ik vast bij volgende opgave:

http://www.vlaamseprogrammeerwedstrijd. ... gieter.pdf

Ik denk dat de efficiëntste manier met recursieve backtracking werken is, totdat er een volledig juist rooster overblijft.

Heeft iemand soms de oplossing voor deze opgave?

Groetjes,

Luc

Re: [Java] Vlaamse programmeerwedstrijd - Loodgieter

Geplaatst: ma 09 apr 2012, 00:50
door 317070
Vlaamse programmeerwedstrijd? De beste oefening is naar mijn bescheiden mening oefenen in met de dobbelsteen een 6 rollen. Ik heb slechte ervaringen gehad met de willekeur van de jury in de wedstrijd.

Voor die vraag kun je er steeds de vakjes uithalen met slechts 1 oplossing, en de rest inderdaad recursive backtracken. Zonder dat eerste ga je volgens mij te traag zijn. Het is een vraag die je volgens mij niet of nauwelijks binnen de tijd kunt oplossen en die je sowieso als laatste moet aanpakken.

Wat wel handig is, is om stukjes code die steeds terug komen (zoals de 2 om 2 vragen tegelijk te stellen in deze vraag) al liggen te hebben. Ook een Java-library met grafencode komt van pas.

Re: [Java] Vlaamse programmeerwedstrijd - Loodgieter

Geplaatst: ma 09 apr 2012, 09:12
door lucpeeters
Stel dat er slechts 1 unieke oplossing per rooster is, hoe moet ik dat dan aanpakken?

Hoe moet ik mijn rooster voorstellen? Hoe moet ik alles inlezen?

Via een scanner? En elk teken op een plaats in een array zetten?

Re: [Java] Vlaamse programmeerwedstrijd - Loodgieter

Geplaatst: ma 09 apr 2012, 23:06
door lucpeeters
Heeft niemand een idee hoe hieraan te beginnen?

Re: [Java] Vlaamse programmeerwedstrijd - Loodgieter

Geplaatst: di 10 apr 2012, 10:33
door 317070
lucpeeters schreef: ↑ma 09 apr 2012, 09:12
Via een scanner? En elk teken op een plaats in een array zetten?
Uiteraard? Je kunt ook op iedere plaats in de matrix een array plaatsen van Booleans die allemaal true zijn. Iedere keer als een bepaald stuje ergens onmogelijk wordt, word er een Boolean false.