Блог пользователя alurquiza

Автор alurquiza, история, 8 лет назад, По-английски

How can I solve the problem Hooligan?, problem H of the ACM-ICPC Latin American Contest 2009. Could anyone help me? http://coj.uci.cu/24h/problem.xhtml?pid=1210

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

First, we suppose greedily that our dream team wins all of its missing matches. After this, it should have P points. Then, build a graph with nodes x1, x2, ..., xn - 1. Now, between xi and xj (i ≠ j), put an edge in each direction with capacity equal to the number of games missing between teams i and j. Use a node B, which has an edge towards every xi with capacity equal to the number of matches the ith team still has to play, and a node E, in such a way that there is an edge from each xi to this node with capacity equal to P - pi, where pi are the points that the ith team already has. Your dream team can be a champion iff the maxflow from B to E equals the number of missing matches.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Do you consider whether the team wins, loses or draw?

    • »
      »
      »
      8 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Yes. I am considering that each team wins 1 point per every game that it has not played (This happens because every match distributes 2 points, so 1 per team). This amount of points is the flow from B to xi. After that, each team can "transfer" one point to other team, with the constraint that it cannot transfer more points than the matches that they can play between them. A point transfer from xi to xj means that team i lose to team j. If no transfer occurs, then i and j drew their game.

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

This is a famous Max Flow problem, more info here