ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps
-
Upload
irrrrr -
Category
Technology
-
view
833 -
download
1
description
Transcript of ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps
![Page 1: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/1.jpg)
ICPC Asia::Tokyo 2014Problem K – L∞ Jumps
![Page 2: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/2.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 3: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/3.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 4: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/4.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 5: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/5.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 6: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/6.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 7: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/7.jpg)
K: L∞ Jumps – Solution (1/4)
• Sort the given points (x1, y1), …, (xn, yn) in clockwise order. Call them base vectors.
• Suppose we fix jump vectors to (u1, v1), …, (un, vn). (u1+…+un = s, v1+…+vn = t)
• What is the optimal assignment between base vectors and jump vectors?
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
(u1, v1)
(u2, v2)
(u3, v3)
(u4, v4)
(u5, v5)
Base vectors Jump vectors
→ Greedy is the best
![Page 8: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/8.jpg)
K: L∞ Jumps – Solution (2/4)
• But how to determine jump vectors?
• Let’s fix the count of jump vectors in (upper/right/bottom/left) part of the square edge.• U := count in upperR := count in rightB := count in bottomL := count in left
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
Base vectors Jump vectors
U
RLB
![Page 9: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/9.jpg)
K: L∞ Jumps – Solution (3/4)
• Let (p1, d), …, (pU, d) := jump vectors in upper,(q1, -d), …, (qB, d) := jump vectors in bottom.
• Since U,R,B,L is fixed,p1+…+pU+q1+…+qB – Ld + Rd = s
must be satisfied.
• Since greedy assignment is the best, we can compute optimal jump vectors (if we fix offset.)
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
Base vectors Jump vectors
U
RLB
![Page 10: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/10.jpg)
K: L∞ Jumps – Solution (4/4)
• Complexity?• Fix U,R,B,L: Since U+R+B+L=n, there are O(n3) combins.
• Fix offset for greedy assignment : O(n) ways.
• Compute the cost for jump vectors : O(n) time.
• O(n5) time in total.
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
Base vectors Jump vectors
U
RLB
![Page 11: ICPC Asia::Tokyo 2014 Problem K – L∞ Jumps](https://reader036.fdocuments.net/reader036/viewer/2022081201/559456c31a28ab732f8b462b/html5/thumbnails/11.jpg)
K: L∞ Jumps – Summary
No submission…