Kezdőoldal » Számítástechnika » Programozás » Ezt hogy csináljam meg?

Ezt hogy csináljam meg?

Figyelt kérdés

Egy étteremben minden nap A és B menü közül válaszhatunk. Megkapjuk az étterem menüjét N napra előre (maximum egy évre előre). Mennyi a legkisebb összeg amit fizetnünk kell ha minden nap enni akarunk de ugyanazt a menüt maximum 2 egymást követő napon választhatjuk?


A menüt egy Nx2-es 2D tömbként kapom meg ahol a sorok a napok a két oszlop pedig az A és B menü árai. Pl:


4 6

3 7

2 8

6 1


Itt a megoldás 6 + 3 + 2 + 1 = 12.

(4 + 3 + 2 + 1 nem lehet mert úgy 3 egymást követő napon választanánk az A menüt)


Ezt csináltam:

[link]

De így nem jó mert egyrészt nem mindig a legkisebbet kéne választani csak nem tudom hogy döntsem el. Másrészt nem tudom hogy figyeljem hogy választottam-e már 2x egymás után ugyanazt.



2020. aug. 11. 08:47
1 2 3 4
 11/37 A kérdező kommentje:
Csak simán rá szoktam guglizni algoritmizálós feladatokra. Ezt is találtam valahol csak megoldás nem volt hozzá.
2020. aug. 11. 14:02
 12/37 anonim ***** válasza:
Adsz nekem egy olyan példa tömböt, ahol valahol a nagyobb értéket kell választanod és nem mindenhol a minimumot, hogy a végeredmény a legkisebbre jöjjön ki. Köszönöm. Lehet jól jön másnak is, hogy a példákkal nem kell vacakolni. Csak a tesztelés miatt. (Nem kell, hogy 365 elemű legyen! :D). Később ránézek, ha gépnél leszek.
2020. aug. 11. 19:58
Hasznos számodra ez a válasz?
 13/37 A kérdező kommentje:
A kérdésben lévő példa is ilyen, az elején a 6 kell a minimumhoz, nem a 4.
2020. aug. 11. 20:35
 14/37 anonim ***** válasza:
Ja. De ott hátulról inditom a ciklust és minimum keresés: 1, 2, 3, és mivel 2 egymás után volt akkor 6 maradt. :D
2020. aug. 11. 20:45
Hasznos számodra ez a válasz?
 15/37 anonim ***** válasza:
Mutasd már hol találtad ezt a feladatot. :)
2020. aug. 11. 20:48
Hasznos számodra ez a válasz?
 16/37 anonim ***** válasza:
0%

Amúgy van még egy megoldás, ami szerintem jó lehet és gyorsan fog futni, ráadásul vissza se kell lépkedni.


Rendezd a tömböt az első érték szerint növekvő sorrendbe:

pl:


4 6

3 7

2 8

6 1


Esetén a rendezett tömb:


2 8

3 7

4 6

6 1


Ezután mindig a minimumot keresed, de minden 3.-nál a maximumot veszed. Tehát

2,3, (Most jön a 3.: 6), és utána 1



Másik példa:


2 3

4 5

6 7

3 6

4 7


Rendezve:


2 3

3 6

4 5

4 7

6 7


2,3 (Most a maximumot: 5) 4,6 = 20

2020. aug. 11. 21:06
Hasznos számodra ez a válasz?
 17/37 anonim ***** válasza:
Kódot nem fogok írni, de szerintem azzal lehetne hatékony megoldást csinálni, ha Dijkstra-algoritmussal legrövidebb utat keresel. A gráfot aszerint építed fel, hogy ne legyenek benne olyan utak, amik egymás után 3 ugyanolyan menü választásával születnének.
2020. aug. 11. 22:48
Hasznos számodra ez a válasz?
 18/37 A kérdező kommentje:

16-os:

1 5

5 1

1 5

5 1

1 5

5 1

Rendezve első érték szerint:

1 5

1 5

1 5

5 1

5 1

5 1

Így a te logikád szerint ha jól értem 1+1+5+1+1+5=14 lenne a megoldás, a jó megoldás pedig 1+1+1+1+1+1=6.

2020. aug. 12. 06:37
 19/37 A kérdező kommentje:

17-es hogy építed fel úgy a gráfot?


Vegyük a kérdésben szereplő példát:

4 6

3 7

2 8

6 1


4-ből 3-ba és 7-be menne él így 7-ből pedig 8-ba mert 4-7-8 ugye jó út.

6-ból szintén mennie kéne ugye 3-ba és 7-be viszont mivel 7-ből 8-ba már vezet él így elérhetővé válna a 6-7-8 ami rossz út.

2020. aug. 12. 08:48
 20/37 anonim ***** válasza:
Miért válna elérhetővé?
2020. aug. 12. 10:07
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!