Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

HW6 Obb test_foto_10_6_ter

a
a.pietroluongo (11250 points)
20 39 131
in HW6 obbligatorio by (11.3k points)
closed by
Come posso ottimizzare il test_foto_10___6_ter___40__17871_  ?
Vado in timeout 4s. (Gli altri test  sono OK)
715 views
closed with the note: ho cambiato algoritmo.

3 Answers

z
zanna (510 points)
1 1 6
by (510 points)
Se vai in timeout di 4 secondi potrebbe essere proprio il tuo algoritmo a non andare bene (nonostante funzioni per gli altri test). Sfrutta la caratteristica delle immagini di avere o non avere un segmento rosso, ti basta sapere se dopo un pixel verde c'è un solo pixel rosso per sapere con certezza che ci sarà tutto quel segmento. Inoltre pensa al fatto che è inutile controllare quelle righe e colonne da cui sicuramente non avrà inizio un quadrato.
a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
Si, faccio entrambi i controlli..
fc-dev (16450 points)
16 20 34
by (16.5k points)
Ah... quindi basta un solo pixel... ?
Non c'è la possibilità di segmenti parzialmente vuoti?
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)
No, i segmenti non possono essere parzialmente vuoti.
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)

Il codice deve essere valido per ogni input, quindi non si può scrivere un qualcosa di specifico (in questo caso foto_10___6_ter), il consiglio però che ti posso dare è di cercare di eliminare cicli superflui e di non considerare tutti i pixel tra i verdi, perché se anche solo uno di essi è nero o rosso allora lo saranno anche i restanti tra i 2. Sopratutto non devi arrivare per forza fino all'ultimo pixel della tua griglia, e le uniche coordinate essenziali della tua griglia sono quella in alto a sx e in basso a dx (parlo dei pixel verdi).

plm (18850 points)
13 15 118
by (18.9k points)
Purtroppo credo che la soluzione sia ottimizare l'algoritmo o ripensarlo da capo siccome non si può modellare l'algoritmo per farlo andare bene in un test solo, ma bensì di essere efficente per ogni problema proposto.