CPSC 490 - Student Presentations 2

For your student presentation, you must either

The presentation should be about 10 minutes long, and will be worth 10% of your grade (everyone will do two presentations this term).

Presentations should describe the problem, present an algorithm, and prove/justify its correctness and running time.

For this set of presentations, a visual aid (e.g. slides) is required. Make a private post on Piazza with a link to your presentation, so we can put them on the course website.

As soon as you choose a problem, post a private message on Piazza. Problems and time slots go by first come first serve :)

Also, feel free to ask us for hints/resources to solve any of the problems below.

Presentation Dates

March 28 (Thursday)
April 2 (Tuesday)
April 4 (Thursday)

Problem List (more to be added)

  1. ★★ Give an algorithm to compute the intersection of two convex hulls in O(n log n) or better. (Trevin 202)

  2. ★★★ Give an algorithm to find the minimum distance between two polygons in O(n log n) or better. (Juan 202)

  3. ★★★ Find maximum perimeter triangle out of a point set in O(n^2) or better. (Ben 202)

  4. ★★★ Explain how range query and range update can be done in O(log n) on your favorite balanced binary search tree (e.g. a Splay Tree). For example, adding 3 to value of all nodes with key between 10 and 15 and then querying the minimum value out of all nodes with key between 5 and 12. (Ryan 202)

  5. ★★★★ A clique is a complete subgraph. Given an undirected graph, partition the vertices into two sets A and B, such that vertices in A forms a clique, and vertices in B have no edges between them, or determine that this is impossible. What is the lowest time complexity you can get for your solution? Hint: it can be done in polynomial time.

  6. ★★★★ Find the number of permutations of size n such that the longest increasing subsequence does not have length 3, in polynomial time.

  7. ★★★★ Give a data structure that represents an "array" but supports the following operations in O(log n) time: insert/delete/get element at any index, reversing a subarray.

  8. ★★★★★ Support two operations on an array in O(log n) time: for each i in [l, r], change A_i to max(A_i, x); query for the sum of A_i from l to r.

  9. ★★★★★ A tandem repeat in a string is two adjacent copies of the same substring (e.g. CATCAT). Give an algorithm to detect the presence of at least one tandem repeat in O(n log^2 n) or better.

  10. ★★★★★ We learned in class how to solve the path of maximum bandwidth problem and how to efficiently answer many queries. We will turn to the problem of efficient updates. Given an undirected graph, construct a data structure that supports the following queries in O(log V) time: get bandwidth of the path of maximum bandwidth between two nodes, increase the bandwidth of an edge.

Algorithms

  1. Push-relabel maximum flow algorithm (Michelle 202)

  2. Minimum cost maximum flow (Sam 202)

  3. Gomory-Hu Tree and all-pairs min cut (Leif 201)

  4. 2D segment tree (Kenny 201)

  5. Any persistent tree data structure (Justin 201 (AVL)), (Rehim 201 (Segment tree))

  6. Mo's algorithm/other square root tricks (Edwin 202)

  7. K-d tree and nearest neighbor queries (Arian 202)

  8. Splay trees (Elad 201)

  9. Treaps (Cartesian Trees) (Barak 201)

  10. Quad tree / oct tree / binary space partition tree and their applications (Andrew 201)

  11. Randomized incremental convex hull construction

  12. Heavy light decomposition (Victor 201)

  13. Orthogonal convex hull

  14. Delaunay triangulation/Voronoi diagram

  15. Line arrangement

  16. Topological line sweep

  17. Triangulating a non-convex polygon

  18. Construction of visibility graph in subcubic time (better than O(n^3)) (Daniel 202)

  19. Arbitrary polygon intersection and union

  20. Arbitrary dimensional minimum enclosing ball

  21. Any convex optimization algorithm with applications

  22. Chinese Remainder theorem: solving simultaneous equations of x = a_i mod n_i

  23. Primality testing (Karan 201)

  24. Integer factorization

  25. Topological Skeleton (Lauren 201)