Exemple #1
0
 def valid(length):
     size = len(red) + len(blue) + 2
     source = size - 2
     target = size - 1
     graph = []
     for i in range(size):
         row = {}
         for j in range(size):
             row[j] = 0
         graph.append(row)
     for i in range(len(red)):
         graph[source][i] = 1
     for i in range(len(red), size - 2):
         graph[i][target] = 1
     for i, r in enumerate(red):
         for j, b in enumerate(blue):
             if dist(r, b) <= length:
                 graph[i][j + len(red)] = 1
     max_flow = edmondsKarp(graph, source, target)
     return max_flow >= K
Exemple #2
0
 def valid(length):
     size = len(red) + len(blue) + 2
     source = size - 2
     target = size - 1
     graph = []
     for i in range(size):
         row = {}
         for j in range(size):
             row[j] = 0
         graph.append(row)
     for i in range(len(red)):
         graph[source][i] = 1
     for i in range(len(red), size - 2):
         graph[i][target] = 1
     for i, r in enumerate(red):
         for j, b in enumerate(blue):
             if dist(r, b) <= length:
                 graph[i][j + len(red)] = 1
     max_flow = edmondsKarp(graph, source, target)
     return max_flow >= K
 def valid(years):
     size = H + A + 2
     source = size - 2
     target = size - 1
     graph = []
     for i in range(size):
         row = {}
         for j in range(size):
             row[j] = 0
         graph.append(row)
     for i in range(H):
         graph[source][i] = 1
     for i in range(H, size - 2):
         graph[i][target] = 1
     for i in range(H):
         for j in range(A):
             if win(i, j, years):
                 graph[i][j + H] = 1
     max_flow = edmondsKarp(graph, source, target)
     return max_flow >= A
Exemple #4
0
 def valid(years):
     size = H + A + 2
     source = size - 2
     target = size - 1
     graph = []
     for i in range(size):
         row = {}
         for j in range(size):
             row[j] = 0
         graph.append(row)
     for i in range(H):
         graph[source][i] = 1
     for i in range(H, size - 2):
         graph[i][target] = 1
     for i in range(H):
         for j in range(A):
             if win(i, j, years):
                 graph[i][j + H] = 1
     max_flow = edmondsKarp(graph, source, target)
     return max_flow >= A