Torna alle sfide
Media 0 risolte 0% di accettazione

Conta le Sequenze di Dadi

Conta le sequenze ordinate di lanci di dado con una somma data.

Cosa imparerai

  • Costruire le risposte da totali più piccoli
  • Scrivere una ricorrenza sull'ultimo lancio
  • Prendere i risultati modulo un grande primo

Problema

Un dado standard produce un intero da 1 a 6. Conta tutte le sequenze ordinate non vuote di risultati la cui somma è target. Ordini diversi contano separatamente. Restituisci il conteggio modulo 1.000.000.007.

Implementa dice_combinations(target).

Input

target: La somma richiesta di tutti i lanci.

Output

Restituisci il numero di sequenze modulo 1.000.000.007.

Vincoli

1 ≤ target ≤ 1.000.000. Restituire un conteggio modulo 1.000.000.007 significa restituire il resto della divisione per quel numero.

Esempi

Esempio 1
Input:
target = 2

Output atteso:
expected = 2
Input:
long long target = 2;

Output atteso:
long long expected = 2;
Input:
long target = 2;

Output atteso:
long expected = 2;

Spiegazione

Le due sequenze sono [2] e [1, 1].

Esempio 2
Input:
target = 4

Output atteso:
expected = 8
Input:
long long target = 4;

Output atteso:
long long expected = 8;
Input:
long target = 4;

Output atteso:
long expected = 8;

Spiegazione

Le sequenze sono [4], [1,3], [3,1], [2,2], [1,1,2], [1,2,1], [2,1,1] e [1,1,1,1].

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Pensa alle somme più piccole come mattoni per costruire il target.

Suggerimento 2

Usa un conteggio cumulativo per ogni somma basato sulle sei somme precedenti.

Suggerimento 3

Applica il modulo a ogni addizione e gestisci separatamente le somme sotto 1.

Complessità attesa

tempo O(target), spazio aggiuntivo O(target)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.