Problema
Mostra originale (inglese)Per ogni dimensione di scacchiera k da 1 a n, conta le coppie non ordinate di caselle distinte su una scacchiera k per k in cui due cavalieri non possono attaccarsi a vicenda. Un cavaliere si muove di due caselle in un asse e di una nell'altro.
. x . x .
x . . . x
. . K . .
x . . . x
. x . x .K indica un cavaliere e x le sue possibili destinazioni, quando quelle caselle si trovano sulla scacchiera. Scambiare i due cavalieri non genera una nuova disposizione.
Implementa two_knights(n).
Input
n: La dimensione massima della scacchiera da considerare.
Output
Restituisci n conteggi in ordine, per le dimensioni della scacchiera da 1 a n.
Vincoli
1 ≤ n ≤ 10.000. I conteggi rientrano nei numeri interi con segno a 64 bit.
Esempi
Input:
n = 3
Output atteso:
expected = [0, 6, 28]
Input:
long long n = 3;
Output atteso:
std::vector<long long> expected = {0, 6, 28};
Input:
long n = 3;
Output atteso:
long[] expected = new long[] {0, 6, 28};
Spiegazione
Una scacchiera 1 × 1 non può contenere due cavalieri. Una scacchiera 2 × 2 ha sei coppie e nessun attacco. Una scacchiera 3 × 3 ha 36 coppie, di cui otto si attaccano, lasciandone 28.
Input:
n = 1
Output atteso:
expected = [0]
Input:
long long n = 1;
Output atteso:
std::vector<long long> expected = {0};
Input:
long n = 1;
Output atteso:
long[] expected = new long[] {0};
Spiegazione
Sono richieste due caselle distinte, ma la scacchiera ne ha solo una.
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.