|
16 | 16 | **说明**: |
17 | 17 |
|
18 | 18 | - **两个数组的异或值之和**:$(nums1[0] \oplus nums2[0]) + (nums1[1] \oplus nums2[1]) + ... + (nums1[n - 1] \oplus nums2[n - 1])$(下标从 $0$ 开始)。 |
19 | | -- 举个例子,$[1, 2, 3]$ 和 $[3,2,1]$ 的异或值之和 等于 $(1 \oplus 3) + (2 \oplus 2) + (3 \oplus 1) + (3 \oplus 1) = 2 + 0 + 2 = 4$。 |
| 19 | +- 举个例子,$[1, 2, 3]$ 和 $[3, 2, 1]$ 的异或值之和 等于 $(1 \oplus 3) + (2 \oplus 2) + (3 \oplus 1) + (3 \oplus 1) = 2 + 0 + 2 = 4$。 |
20 | 20 | - $n == nums1.length$。 |
21 | 21 | - $n == nums2.length$。 |
22 | 22 | - $1 \le n \le 14$。 |
|
56 | 56 |
|
57 | 57 | 举个例子: |
58 | 58 |
|
59 | | -1. $nums2 = \lbrace 1, 2, 3, 4 \rbrace,state = (1001)_2$,表示选择了第 $1$ 个元素和第 $4$ 个元素,也就是 $1$、$4$。 |
60 | | -2. $nums2 = \lbrace 1, 2, 3, 4, 5, 6 \rbrace,state = (011010)_2$,表示选择了第 $2$ 个元素、第 $4$ 个元素、第 $5$ 个元素,也就是 $2$、$4$、$5$。 |
| 59 | +1. $nums2 = \lbrace 1, 2, 3, 4 \rbrace, state = (1001)_2$,表示选择了第 $1$ 个元素和第 $4$ 个元素,也就是 $1$、$4$。 |
| 60 | +2. $nums2 = \lbrace 1, 2, 3, 4, 5, 6 \rbrace, state = (011010)_2$,表示选择了第 $2$ 个元素、第 $4$ 个元素、第 $5$ 个元素,也就是 $2$、$4$、$5$。 |
61 | 61 |
|
62 | 62 | 这样,我们就可以通过动态规划的方式来解决这道题。 |
63 | 63 |
|
|
75 | 75 |
|
76 | 76 | 对于当前状态 $dp[state]$,肯定是从比 $state$ 少选一个元素的状态中递推而来。我们可以枚举少选一个元素的状态,找到可以组成的异或值之和最小值,赋值给 $dp[state]$。 |
77 | 77 |
|
78 | | -举个例子 $nums2 = \lbrace 1, 2, 3, 4 \rbrace,state = (1001)_2$,表示选择了第 $1$ 个元素和第 $4$ 个元素,也就是 $1$、$4$。那么 $state$ 只能从 $(1000)_2$ 和 $(0001)_2$ 这两个状态转移而来,我们只需要枚举这两种状态,并求出转移过来的异或值之和最小值。 |
| 78 | +举个例子 $nums2 = \lbrace 1, 2, 3, 4 \rbrace, state = (1001)_2$,表示选择了第 $1$ 个元素和第 $4$ 个元素,也就是 $1$、$4$。那么 $state$ 只能从 $(1000)_2$ 和 $(0001)_2$ 这两个状态转移而来,我们只需要枚举这两种状态,并求出转移过来的异或值之和最小值。 |
79 | 79 |
|
80 | 80 | 即状态转移方程为:$dp[state] = min(dp[state], \quad dp[state \oplus (1 \text{ <}\text{< } i)] + (nums1[i] \oplus nums2[one\underline{\hspace{0.5em}}cnt - 1]))$,其中 $state$ 第 $i$ 位一定为 $1$,$one\underline{\hspace{0.5em}}cnt$ 为 $state$ 中 $1$ 的个数。 |
81 | 81 |
|
|
0 commit comments