给出一个大小为N的数组(比方说)
A1,A2,... AN 。
给定预定义的交换操作列表:
(a1,a2),(b1,b2),...(x1,x2)。
交换操作后数组的最大总和是多少?
如何使用动态编程,即递归公式?
例如,
数组= {3,5,9,6,1}
给定掉期操作:
{(9,3),(1,2),(8,6)}
所以,我们可以交换" 3"来自数组" 9",因为(9,3)是给定的交换操作 同样,我们可以交换" 1"用" 2"因为(1,2)是给出的交换操作 然后" 6"将被" 8"取代。
所以,新阵列= {9,5,9,8,2}
和 sum = 9 + 5 + 9 + 8 + 2 = 33 ,这是交换操作后的最大值。
那么,如何使用动态编程来解决它? 还有其他方法吗?