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
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3773 |
3 | Radewoosh | 3646 |
4 | ecnerwala | 3624 |
5 | jqdai0815 | 3620 |
5 | Benq | 3620 |
7 | orzdevinwang | 3612 |
8 | Geothermal | 3569 |
8 | cnnfls_csy | 3569 |
10 | gyh20 | 3447 |
# | User | Contrib. |
---|---|---|
1 | awoo | 161 |
2 | maomao90 | 160 |
3 | nor | 157 |
4 | atcoder_official | 156 |
4 | cry | 156 |
6 | -is-this-fft- | 155 |
7 | maroonrk | 154 |
8 | adamant | 153 |
9 | Um_nik | 151 |
10 | djm03178 | 146 |
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
Name |
---|
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?".
I think tunnel means that no 2 bridges can intersect. Yes, i figured out that dp. It will be kn^2 right.
I implemented the DP you told but I got WA.
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.)
Which bridges are not allowed? 1) Those whose distance are more than R 2) Those which intersect the line formed by joining the points
Am I correct?
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
and R ≥ 4, we may build a single bridge from
0 10
to4 10
, although the bridge comes through2 10
So bridges need to be straight lines?
Yes
This question was duplicated in http://mirror.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.
Hey! I am still unable to solve the problem can you please help!!
Now?
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,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.
Thanks, I fixed it. Enjoy!
P.S. I did not retest all solutions, who got 0 points, please send again your solution.
thanks!!