3851. Find Sum Of Array Product Of Magical Sequences
Array Math Dynamic Programming Bit Manipulation Combinatorics Bitmask
Problem - Find Sum Of Array Product Of Magical Sequences
Hard
You are given two integers, m
and k
, and an integer array nums
.
A sequence of integers seq
is called magical if:
seq
has a size ofm
.0 <= seq[i] < nums.length
- The binary representation of
2seq[0] + 2seq[1] + ... + 2seq[m - 1]
hask
set bits.
The array product of this sequence is defined as prod(seq) = (nums[seq[0]] * nums[seq[1]] * ... * nums[seq[m - 1]])
.
Return the sum of the array products for all valid magical sequences.
Since the answer may be large, return it modulo 109 + 7
.
A set bit refers to a bit in the binary representation of a number that has a value of 1.
Example 1:
Input: m = 5, k = 5, nums = [1,10,100,10000,1000000]
Output: 991600007
Explanation:
All permutations of [0, 1, 2, 3, 4]
are magical sequences, each with an array product of 1013.
Example 2:
Input: m = 2, k = 2, nums = [5,4,3,2,1]
Output: 170
Explanation:
The magical sequences are [0, 1]
, [0, 2]
, [0, 3]
, [0, 4]
, [1, 0]
, [1, 2]
, [1, 3]
, [1, 4]
, [2, 0]
, [2, 1]
, [2, 3]
, [2, 4]
, [3, 0]
, [3, 1]
, [3, 2]
, [3, 4]
, [4, 0]
, [4, 1]
, [4, 2]
, and [4, 3]
.
Example 3:
Input: m = 1, k = 1, nums = [28]
Output: 28
Explanation:
The only magical sequence is [0]
.
Constraints:
1 <= k <= m <= 30
1 <= nums.length <= 50
1 <= nums[i] <= 108
Solutions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
Submission Stats:
- Runtime: 1787 ms (51.15%)
- Memory: 55.7 MB (7.86%)