Labb 3: Ordkedjor
För ADK gäller: Om du redovisar labben senast den 13 april får du en bonuspoäng på tentan.
På övningen den 22 mars har du dessutom möjlighet att redogöra för lösningen på teoriuppgifterna nedan. Korrekt lösning av dessa ger en bonuspoäng på tentan. Sen redovisning ger ingen bonus för labb eller teoriuppgifter. För SUALKO gäller: Labben är frivillig. Om du på ordinarietentan har fått en poängsumma strax under en gräns (till exempel 10-11 poäng) har du möjlighet att få dom saknade poängen genom att redovisa denna labb senast augusti 2007. Rätt löst labb ger en poäng och teoriuppgifterna två poäng som vanligt.
I katalogen ProblemDet ligger nära till hands att fråga sig hur man finner kortaste vägen från aula till labb genom att byta ut en bokstav i taget, till exempel så här:aula -> gula -> gala -> gama -> jama -> jamb -> jabb -> labb där alla mellanliggande ord måste finnas i ordlistan (se nedan). För många ord i ordlistan existerar det en (kortaste) ordkedja från ordet själv till labb. Nu kan man fråga sig: vilket ord är det som har längst kortast ordkedja till labb och hur ser den kedjan ut? Det räcker att hitta och skriva ut en enda ordkedja av den maximala längden. Specifikation Indata består av två delar. Den första
delen är ordlistan, som består av ett antal fyrbokstavsord, ett per
rad. Denna del avslutas av en rad som bara innehåller ett ' Programmet ska, för varje fråga på formen ' Exempel på körning En ordlistefil finns i spel01$ cat /info/adk07/labb3/word4 testord.txt | java Main aula labb: 8 ord aula -> gula -> gala -> gama -> jama -> jamb -> jabb -> labb sylt gelé: ingen lösning idén: 15 ord romb -> bomb -> bobb -> jobb -> jabb -> jamb -> jams -> kams -> kaos -> klos -> klon -> klen -> ilen -> iden -> idén UppgiftDet givna Javaprogrammet löser visserligen ovanstående problem, men det tar timmar att få fram svaret. Du ska effektivisera programmet så att det hittar svaret inom den tidsgräns som Kattis ger.Teoriuppgifterna ger uppslag om olika sätt att effektivisera programmet. Ditt optimerade program ska ha samma in- och utmatning som det givna programmet (vilken av alla lika långa lösningar det skriver ut gör dock detsamma) och det måste fortfarande vara Java.
Kattis känner till problemet som adkwordchain Teoriuppgifter
|