mgajabi's blog

By mgajabi, 10 years ago, In English

I have not been able to solve this problem.Can any tell me how to solve it.The best i can think is of djikstra,but that will obviously give me time limit exceeded.Can anyone tell me the solution.

  • Vote: I like it
  • -13
  • Vote: I do not like it

| Write comment?
»
10 years ago, # |
  Vote: I like it +1 Vote: I do not like it

You can use binary search. Then for fixed answer X you may check it in O(N+M) — bfs over modified graph with states [vertice of original graph][number of edges with weight >X in path].

  • »
    »
    10 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I didn't get the modified graph part.Can you please ellaborate.

    • »
      »
      »
      10 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      We are interested in weight of second heaviest edge on the path. If we'll use binary search — then question is modified to can we find a way from start to finish with second heaviest edge of weight no more than X, and this one is equal to can we find a way from start to finish wish <=1 edges of weight more than X in it.

      And now it is clear that you are interested only in your current vertex and number of used "heavy" edges (because you can't use "heavy" edge if you used 1 before — then you'll have 2 "heavy" edges in your path).

»
10 years ago, # |
  Vote: I like it 0 Vote: I do not like it

How to solve problem L :) http://codeforces.net/gym/100460/problem/L Thanks in advance :)

  • »
    »
    10 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Looks like we can find for each man the interval of possible relation (from any event we know that for any man realtion <=x) and then check for each event that exists man who took part in it and can have realtion equal to event's relation.