Diferente pentru blog/meet-in-the-middle intre reviziile #22 si #23

Nu exista diferente intre titluri.

Diferente intre continut:

bq. Given an array of integers, find out if there are any four numbers such that the sum of the first three equal to the fourth (you can use the same number more than once).
The naive algorithm is $O(N^4^)$ try all the possible combinations of four numbers. A less naive algorithm brute forces through all $n^3$ combinations of three numbers and then efficiently checks if their sum is in the original array by using a hash table.
But by now you’ve probably started thinking how meet in the middle can be applied for this problem. The trick is to rewrite the equation as a + b = d - c. Store all the n^3 sums a + b + c in a hash set S. Then iterate through all n^3 combinations for d, e, f and check if S contains f - d - e. This algorithm has O(n^3) time and space complexity.
 
 
A trivial solution is to find first the list of friends for the first user and then the lists of friends for each of his friends. Assuming the network has an average degree of k, this approach does k + 1 requests.
A somewhat faster solution precomputes for each user a list of friend of friends. The number of requests is 1 now but space used is O(nk^2) and the size of a reply is O(k^2).
 
A solution that uses the meet in the middle approach has a pretty good balance between memory resources and query execution. We issue two queries, one for the friends of the first user and one for the friends of the second user. Then we intersect the two sets. Now we use just 2 requests, the graph takes O(nk) space, and the reply sizes are O(k).
But by now you’ve probably started thinking how meet in the middle can be applied for this problem. The trick is to rewrite the equation as $a + b = d - c$. Store all the $n^2^$ sums $a + b$ in a hash set $S$. Then iterate through all $n^2^$ combinations for c and d and check if $S$ contains $d - c$. This algorithm has $O(n^2^)$ time and space complexity.
h2. Breaking 2DES

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.