1. On the east coast of the U.S. there are many toll roads such as the Pennsylvania Turnpike and the Garden State Expressway. When you enter the toll road you get handed a ticket with your entrance location marked on it. Then when you exit the toll road you pay an amount based on where you entered and exited. To be precise, each segment (from exit i to exit i+1) has a cost C_{i,i+1} and the cost of entering at exit j and exiting at exit k (for j < k) is equal to ^{k-1}∑_{i=j} C_{i,i+1}. If the road has n exits then it has n-1 segments which can be represented in a one dimensional array, C[1,....,n-1], where C[i] holds the cost to travel from exit i to exit i + 1. Clearly, if you have the array C you can determine the cost of traveling from exit j to exit k by computing ^{k-1}∑_{i=j} C_{i,i+1} which will take O(k-j) time.
Show how to build a data structure that will allow you to determine the cost of traveling from exit j to exit k on the toll road in O(1) time. A fair answer creates a data structure that has O(n^{2}) elements. A better answer creates a data structure that has O(n) elements.
Be sure to justify the correctness of your solution and analyze the running time required to build your data structure.
2. A binary tree is full if all of its nodes have either zero or two children. Let B_{n} denote the number of full binary trees with n nodes.
(a) Draw all full binary trees with 3, 5, and 7 nodes and determine the exact values of B3,B5,B7.
(b) Why did I leave out trees with an even number of nodes?
(c) For odd n devise a recurrence relation for B_{n} and bound its value in terms of n.
3. A one pass auction is an auction in which each bid must be immediately and irrevocably accepted or refused. Specifically, a one pass auction works as follows:
• A seller announces the availability of an item
• n buyers agree to bid on the item and are presented to the seller in random order.
• When buyer i appears he must make a bid b_{i} > 0 without any knowledge of the bids thus far.
• The seller must decide immediately whether to accept or reject buyer i's bid. If the seller accepts then all future buyers are turned away. If the seller rejects then buyer i leaves and his bid is withdrawn.
Obviously the seller would like to maximize her profit but since she doesn't know what future bids will be and she can't accept a bid she has already rejected she will never be able to formulate an algorithm that ensures that she accepts the highest bid. She must turn to a probabilistic algorithm. Consider the following two phase algorithm that a seller may follow:
1) Reject the first n/10 bids but keep track of the largest bid seen. Call that bid B*.
2) In the remaining bids accept the first bid that surpasses B* (if none surpass B* then accept the very last bid).
Investigate this algorithm and try to answer the following problems:
(a) Using the given algorithm what is the probability that the seller accepts the highest bid?
(b) Can you come up with a better probabilistic algorithm for a one pass auction? Justify why it is better.
(c) In general, how do you determine whether one algorithm is better than another for this type of auction?