0% found this document useful (0 votes)
200 views

Algorithms Midterm Exam

This document outlines the four questions of an algorithms midterm exam. It provides context for each question, including what is being asked and the maximum number of marks available for each part. The questions involve tasks like finding all sums of consecutive elements in an array, designing an algorithm to maximize fish caught in a net, computing convolutions of sequences, finding an optimal solution to connecting houses to internet hubs with minimum cable, and using a strategy like divide-and-conquer to solve a game show problem in O(N log N) time without examining every cell. Hints or examples are provided for some questions.

Uploaded by

jzdoog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views

Algorithms Midterm Exam

This document outlines the four questions of an algorithms midterm exam. It provides context for each question, including what is being asked and the maximum number of marks available for each part. The questions involve tasks like finding all sums of consecutive elements in an array, designing an algorithm to maximize fish caught in a net, computing convolutions of sequences, finding an optimal solution to connecting houses to internet hubs with minimum cable, and using a strategy like divide-and-conquer to solve a game show problem in O(N log N) time without examining every cell. Hints or examples are provided for some questions.

Uploaded by

jzdoog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

COMP3121/3821/9101/9801 18s1 — Algorithms Midterm (UNSW)

Algorithms Midterm Exam


Four questions, marked out of a total of 25 + 20 + 30 + 25 = 100 marks.

Note: when we say “find an efficient algorithm” we mean “find an algorithm that
runs in time O(nk ) for some fixed integer k”; in these cases we are more interested
in the correctness of your algorithm rather than in making it run in a specific time
(for as long as its running time is polynomial in the size n of the input; brute force
algorithms which run in an exponential time will bring you zero credit). If you use
an algorithm covered in lectures you can just quote it; you do not need to describe
its details.

1. (a) [10 marks] You are given an array A consisting of 2n−1 integers. Design
an algorithm which finds all of the n possible sums of n consecutive
elements of A and which runs in time O(n). Thus, you have to find
the values of all of the sums

S[1] = A[1] + A[2] + . . . + A[n − 1] + A[n];


S[2] = A[2] + A[3] + . . . + A[n] + A[n + 1];
.. .. ..
. . .
S[n] = A[n] + A[n + 1] + . . . A[2n − 2] + A[2n − 1],

and your algorithm should run in time O(n).


(b) [15 marks] You are a fisherman, trying to catch fish with a net that
is W meters wide. Using your advanced technology, you know that the
positions of all N fish in the sea can be represented as integers on a
number line. There may be more than one fish at the same location.
To catch the fish, you will cast your net at position x, and will catch
all fish with positions between x and x + W , inclusive. Given N , W
and an array X[1..N ] denoting the positions of fish in the sea, give an
O(N log N) algorithm to find the maximum number of fish you can catch
by casting your net once.
For example, if N = 7, W = 3 and X = [1, 11, 4, 10, 6, 7, 7], then the most
fish you can catch is 4: by placing your net at x = 4, you will catch one
fish at position 4, one fish at position 6 and two fish at position 7.
2. (a) [5 marks] Compute by any method you wish the (linear) convolution
s ∗ s of the sequence s = h1, 2, 0, 4i with itself. (Note that there is no
requirement on the efficiency of your method, and that the sequence is
really short!)
(b) [5 marks] if a sequence x has n terms and sequence y has k terms, how
many terms does the convolution x ∗ y of these two sequences have?
(c) [5 marks] Is it true that s ∗ t = t ∗ s for any two sequences s and t?
Explain why or why not.

1
COMP3121/3821/9101/9801 18s1 — Algorithms Midterm (UNSW)

(d) [5 marks] Describe how we compute efficiently the convolution of two


(long) sequences?

3. (a) [20 marks] Along the long, straight road from Loololong to Goolagong
there are N houses and N hubs. Each hub is capable of providing an
internet connection to one house only, and doing so requires installing
a cable between the hub and the house it connects. Given two arrays
A[1..N ] and B[1..N ] describing the locations of the houses and the hubs
along the road, respectively, design an efficient algorithm that finds the
minimum total length of cable required to connect every house to the
internet.
(b) [10 marks] Prove that your solution is optimal.

4. [25 marks] You and a friend find yourselves on a TV game show! The game
works as follows. There is a hidden N × N table A. Each cell A[i, j] of the
table contains a single integer and no two cells contain the same value.
At any point in time, you may ask the value of a single cell to be revealed.
To win the big prize, you need to find the N cells each containing the max-
imum value in its row. Formally, you need to produce an array M [1..N ] so
that A[r, M [r]] contains the maximum value in row r of A, i.e., such that
A[r, M [r]] is the largest integer among A[r, 1], A[r, 2], . . . , A[r, N ]. In addition,
to win, you should ask at most O(N log N) many questions. For example, if
the hidden grid looks like this:

Column 1 Column 2 Column 3 Column 4


Row 1 10 5 8 3
Row 2 1 9 7 6
Row 3 -3 4 -1 0
Row 4 -10 -9 -8 2

then the correct output would be M = [1, 2, 2, 4].


Your friend has just had a go, and sadly failed to win the prize because they
asked N 2 many questions which is too many. However, they whisper to you a
hint: they found out that M is non-decreasing. Formally, they tell you that
M [1] ≤ M [2] ≤ · · · ≤ M [N ] (this is the case in the example above).
Design an algorithm which asks at most O(N log N) many questions that
produces the array M correctly, even in the very worst case.
Hint: Note that you do not have enough time to find out the value of every
cell in the grid! Try determining M [N/2] first, and see if divide-and-conquer
is of any assistance.

END OF EXAM

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy