Datastructuren en algoritmen

Een knapzak met capaciteit 8 wordt gevuld met voorwerpen gekozen uit vier voorwerpen met (gewicht, waarde) (2, 3), (3, 4), (4, 5) en (5, 6). Van elk voorwerp is er maar één, en voorwerpen kunnen niet worden gesplitst. Wat is de maximale totale waarde bij een totaal gewicht van hoogstens 8?

  1. A7
  2. B9
  3. C10
Antwoord en toelichting tonen

Antwoord: C. 10

De voorwerpen met gewicht 3 en 5 geven gewicht 8 en waarde 4 + 6 = 10, en dat is het maximum. Gewichten 2 en 5 (waarde 9) of 3 en 4 (waarde 9) passen ook, maar halen 10 niet, en drie voorwerpen wegen minstens 2 + 3 + 4 = 9, meer dan de capaciteit. Een gretig algoritme dat voorwerpen in volgorde van waarde per gewichtseenheid inpakt, neemt de voorwerpen met gewicht 2 en 3 (waarde 7); daarna past geen voorwerp meer in de resterende capaciteit van 3, dus het stopt bij 7. Dynamisch programmeren werkt per voorwerp een tabel bij met de beste waarde die binnen elke capaciteit c haalbaar is, en vindt het optimum in O(nW) voor n voorwerpen en capaciteit W.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Datastructuren en algoritmen

  1. Welke eigenschap van het Boyer-Moore-algoritme om een patroon in een tekenreeks te vinden is juist?
  2. Een dynamische array reserveert, als er een element wordt toegevoegd terwijl hij vol is, een nieuw gebied met de dubbele capaciteit en kopieert alle elementen daarheen. Hoeveel elementkopieën worden er in totaal gemaakt als 1000 elementen één voor één worden toegevoegd aan een lege array met capaciteit 1?
  3. Wat is de meest passende reden dat open adressering met lineair proberen bij een hashtabel met veel elementen en een bezettingsgraad van ongeveer 0,5 vaak sneller is dan chaining (elementen koppelen met gelinkte lijsten)?
  4. Voor sorteren op parallelle hardware zoals GPU's worden soms sorteermethoden met een vaste reeks vergelijk-en-verwisselstappen (sorteernetwerken) gebruikt, zoals bitonic sort. Waarom?
  5. Wat is de tijdcomplexiteit van een bewerking die in een array van n elementen elk paar van twee verschillende elementen precies één keer vergelijkt (een dubbele lus die element i vergelijkt met alle elementen erna en i telkens één stap verder zet)?