\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{fullpage}
\usepackage{url}
\pagenumbering{gobble}
\usepackage{hyperref}
\usepackage{graphicx}
\input{statement/preamble.tex}

\title{ Tutorial: Análise de Dados}
\author{Leetcode 1223}
\date{}
\begin{document}
\maketitle
O problema pode ser resolvido por meio de uma abordagem de \textbf{programação dinâmica}, onde calculamos o número de sequências válidas de lançamentos de dados até cada posição, levando em consideração qual foi a última face sorteada e quantas vezes ela apareceu consecutivamente.

A principal restrição é que cada face \( i \) (\(1 \le i \le 6\)) só pode aparecer no máximo \( d_i \) vezes seguidas. Assim, ao adicionar um novo lançamento à sequência, precisamos garantir que essa condição nunca seja violada.

Definimos a seguinte estrutura de DP:

\[
dp[i][j] = \text{número de sequências válidas de comprimento } i \text{ cuja última face lançada é } j
\]

Para lidar com o número de repetições consecutivas, expandimos a ideia considerando blocos consecutivos de uma mesma face.  
Para cada face \( k \), podemos adicioná-la de \(1\) até \(d_k\) vezes, desde que a sequência anterior termine com uma face diferente de \(k\).

Assim, a função de transição é dada por:
\[
dp[i][k] = \sum_{j \ne k} \sum_{x = 1}^{\min(d_k, i)} dp[i - x][j]
\]
onde o termo \(dp[i - x][j]\) representa o número de sequências de comprimento \(i - x\) que terminam com uma face diferente de \(k\), às quais adicionamos \(x\) ocorrências consecutivas da face \(k\).

As condições iniciais são:
\[
dp[0][j] = 1, \quad \forall j \in \{1, 2, 3, 4, 5, 6\}
\]
representando a sequência vazia inicial, que serve como base para as transições.

A resposta final será a soma de todas as formas possíveis de terminar a sequência de comprimento \(n\):
\[
\sum_{j=1}^{6} dp[n][j] \bmod (10^9 + 7)
\]

A complexidade temporal dessa solução é \(O(n \times 6 \times \text{max}(d_i))\), pois para cada posição e cada face consideramos até \(d_i\) possíveis comprimentos de repetições.\end{document}
