101 Logo
onenoughtone

Problem Statement

Number of Dice Rolls With Target Sum

You have n dice, and each die has k faces numbered from 1 to k.

Given three integers n, k, and target, return the number of possible ways (out of the k^n total ways) to roll the dice so the sum of the face-up numbers equals target. Since the answer may be too large, return it modulo 10^9 + 7.

Examples

Example 1:

Input: n = 1, k = 6, target = 3
Output: 1
Explanation: You throw one die with 6 faces. There is only one way to get a sum of 3.

Example 2:

Input: n = 2, k = 6, target = 7
Output: 6
Explanation: You throw two dice, each with 6 faces. There are 6 ways to get a sum of 7: 1+6, 2+5, 3+4, 4+3, 5+2, 6+1.

Example 3:

Input: n = 30, k = 30, target = 500
Output: 222616187
Explanation: The answer must be returned modulo 10^9 + 7.

Constraints

  • 1 <= n, k <= 30
  • 1 <= target <= 1000

Problem Breakdown

To solve this problem, we need to:

  1. This problem can be solved using dynamic programming.
  2. We need to keep track of the number of ways to achieve a certain sum with a certain number of dice.
  3. The state of the DP array is defined by the current number of dice and the current sum.
  4. The recurrence relation involves considering all possible values of the current die.
  5. The modulo operation needs to be applied at each step to avoid integer overflow.
ProblemSolutionCode
101 Logo
onenoughtone