Ciao a tutti,
quest’anno parteciperò alle Nazionali ma non essendo neanche in terza media non ho conoscenze matematiche per risolvere problemi della medesima categoria, prendendo in esempio il problema Rubabandiera v2 di AlgoBadge posso dire con certezza che esiste una formula in grado di calcolare la risposta in quanto N
è compreso tra 1 e 10¹⁸. Ho trovato anche delle ripetizioni particolari per ogni N
. Mi potete consigliare gli argomenti da studiare per saper affrontare problemi di questo tipo? Scrivete pure tutto quello che vi viene in mente, la matematica non è un problema per me. È possibile sapere anche quali sono le strutture dati più utili nelle OII? Ho già studiato i Segment Tree.
Grazie in anticipo…
1 Mi Piace
Ciao.
In base alla mia esperienza, dei vari ambiti della matematica quelli che ti servono per i problemi di programmazione sono l’algebra, per semplificare conti e espressioni e fare conti con complessità migliore, e la teoria dei numeri, quando si tratta di lavorare in modulo o fare cose con le fattorizzazioni di numeri.
Il tipo di problema di matematica che capita più spesso è combinatoria o probabilità. Di solito la richiesta è di contare in quanti modi si può fare una cosa o qual’è la probabilità di un evento (sono abbastanza equivalenti). Per questi sono utili alcune nozioni base del calcolo combinatorio come il fattoriale e i coefficienti binomiali.
Quando capita di fare delle divisioni per fare dei conti in modulo, serve la parte di teoria dei numeri che ti spiega come calcolare gli inversi.
Puoi trovare i topic più utili spiegati nella guida di CP che trovi su CSES.
L’analisi e la geometria non ti servono per i problemi.