1. The sets of multiples of each integer; that is, the sets {0,1,2,3,4,...}, {0,2,4,6,8,...}, {0,3,6,9,12,...}, etc. 2. Make an array of priority queue data structures; to insert a number x, factor x and store it in the priority queues for each of its factors, and similarly, to delete x, factor it and remove it from the priority queues for each of its factors. To solve a range query for a given number x, find the minimum in the priority queue stored in cell x of the array. 3. (a) Yes, because an insertion in a splay tree can be as slow as O(n) time in the worst case, while insertion into a red-black tree is always O(log n). (b) No, because a sequence of n insertions in a red-black tree will always take Theta(n log n) time (each insertion goes down to the leaves of the tree, which are all logarithmically far from the root) which can never be better by more than a constant factor than the O(n log n) amortized time for the splay tree. 4. At each node of the tree, store the minimum and maximum y coordinates for points stored in the subtree descending from the node. These values may be maintained in constant time per rotation or other change to the tree. To answer a query, use these stored values to determine both the minimum and maximum y coordinates of any point stored within the query interval, and then subtract these two y coordinates from each other.