### vatsalsharma376's blog

By vatsalsharma376, 4 months ago, ,

How do I solve this DP problem? Notice the word "tunnel" in the problem statement which confused me. https://www.e-olymp.com/en/problems/5852

•
• +1
•

 » 4 months ago, # |   +8 How the word tunnel'' can confuse???DP subproblems should be: "What minimal distance magus should walk to get from start vertex to vertex #i, using not more than j bridges?".
•  » » 4 months ago, # ^ |   +8 I think tunnel means that no 2 bridges can intersect. Yes, i figured out that dp. It will be kn^2 right.
•  » » » 4 months ago, # ^ |   0 I implemented the DP you told but I got WA.
•  » » » » 4 months ago, # ^ | ← Rev. 2 →   0 A typical mistake solving this problem is to consider (incorrectly!) that no returns can be useful. Sometimes they may be. For example, look picture at the top of page 195 of http://ws.kh.ua/media/sbornik/Sbornik2010.pdf, assuming that K = 2 (only two bridges are allowed), neither AE nor FJ bridges are allowed because they intersect surface near C and near H respectively, and neither AJ nor AH nor CJ bridges are allowed because each of these segments' length is greater than R (maximal length of bridge).(That book is in Russian, but you may at least look at the picture and at equations.)
•  » » » » » 4 months ago, # ^ |   0 Which bridges are not allowed? 1) Those whose distance are more than R 2) Those which intersect the line formed by joining the pointsAm I correct?
•  » » » » » » 4 months ago, # ^ | ← Rev. 2 →   0 Yes, except that some points or segments of the bridge can touch the surface of the earth.In other words, bridge cannot go under earth surface (polygonal chain), but some vertice or some segments of polygonal chain may belong to some bridges. For example, if we have polygonal chain 0 10 1 0 2 10 3 0 4 10 and R ≥ 4, we may build a single bridge from 0 10 to 4 10, although the bridge comes through 2 10
•  » » » » » » » 4 months ago, # ^ |   0 So bridges need to be straight lines?
•  » » » » » » » » 4 months ago, # ^ |   0 Yes
•  » » » » » » » » » 4 months ago, # ^ |   0 How do you assure that the bridge doesn't intersect earth in your DP?
 » 4 months ago, # |   0 This question was duplicated in http://codeforces.com/blog/entry/59717 This looks like this problem is used in some current contest, so let's wait for some days before further answering.
•  » » 4 months ago, # ^ |   0 Well, it's not from any recent contest but okay we can wait for a week maybe if it's fine with you.
•  » » 4 months ago, # ^ |   0 Hey! I am still unable to solve the problem can you please help!!
•  » » 4 months ago, # ^ |   0 Now?
•  » » » 4 months ago, # ^ |   0 Well, AFAIK it's much more efficient not to check does given bridge intersect surface, but to build graph of all possible bridges in a special algorithm stage before (main) DP stage. In this way, it's quite easy to build all O(N2) bridges totally in Θ(N2) time and O(N2) space.For example, to build all possible bridges from vertex v1 (1-based), one can maintain "current maximal slope" (let's name it maxSlope). It's initialized as v1v2 vector (vector(v[1],v[2]) in notation of pseudocode below); then, for each further i, if vector(v[1],v[i]) is counterclockwise or co-directed with maxSlope { if dist(v[1],v[i])<=R { bridges between v[1] and v[i] is allowed } maxSlope is re-assigned as vector(v[1],v[i]) } 
 » 4 months ago, # | ← Rev. 2 →   +10 H-m, it looks like checking of this problem at e-olymp.com is incorrect. Try at ejudge.ckipo.edu.ua, contest #16 "Upsolving of Ilya Porublyov's and DrPepper's day of ISSPS'13 // Дорешивание дня Ильи Порублёва и команды DrPepper ISSPS'13", problems F and G respectively (F for smaller constraints, G for full). (There are no English-language statements at that site, but one can switch its interface to English.)I've already sent bug report to e-olymp.com admin, but still have no reply for it.
•  » » 4 months ago, # ^ | ← Rev. 2 →   +10 Thanks, I fixed it. Enjoy!P.S. I did not retest all solutions, who got 0 points, please send again your solution.
•  » » » 4 months ago, # ^ |   0 thanks!!