Изменения

Перейти к: навигация, поиск

Meet-in-the-middle

132 байта убрано, 23:39, 16 декабря 2012
Нет описания правки
'''findsum()'''
sum <tex>\leftarrow \emptyset </tex>
'''for''' a = 0 <tex> \rightarrow </tex> .. N - 1 '''for''' b = 0 <tex> \rightarrow </tex> .. N - 1
sum[cnt].s <tex>\leftarrow</tex> A[a] + B[b]
sum[cnt].a <tex>\leftarrow</tex> a
cnt++
'''sort'''(sum)
'''for''' c = 0 <tex> \rightarrow </tex> .. N - 1 '''for''' d = 0 <tex> \rightarrow </tex> .. N - 1
'''if''' сумма -(A[c] + A[d]) есть в массив sum
index <tex> \leftarrow </tex> индекс суммы -(A[c] + A[d])
sn <tex> \leftarrow </tex> N / 2
fn <tex> \leftarrow </tex> N - sn;
'''for''' mask = 0 <tex> \rightarrow </tex> .. 2 ** sn - 1 '''for''' j = 0 <tex> \rightarrow </tex> .. sn
'''if''' j-ый бит mask = 1
first[i].w += w[j];
28
правок

Навигация