from collections import defaultdict
from math import gcd
class Vertex:
def __init__(self, val, id):
self.val = val
self.id = id
self.degree = 0
class Edge:
def __init__(self, v1, v2):
self.v1 = v1
self.v2 = v2
def set_score(self, graph):
self.score = graph.vertex_set[self.v1].degree + graph.vertex_set[self.v2].degree
class Graph:
def __init__(self, grid):
self.n = len(grid)
self.grid = grid
self.vertex_set = {}
self.edge_set = []
self.edge_is_remove = []
self.edge_visited = []
def convert_edge_set(self):
self.adj_map = defaultdict(list)
for i in range(self.edge_num):
if self.edge_is_remove[i] == 0:
edge = self.edge_set[i]
v1 = edge.v1
v2 = edge.v2
self.adj_map[v1].append(v2)
self.adj_map[v2].append(v1)
def query_linked(self, i, j, d=0):
v1 = self.get_vertex_id(i, j)
if d==0:
v2 = self.get_vertex_id(i, j+1)
else:
v2 = self.get_vertex_id(i+1, j)
return v2 in self.adj_map[v1]
def get_vertex_id(self, i, j):
id = i * self.n + j
return id
def build_graph(self):
for i in range(self.n):
for j in range(self.n):
v1 = self.get_vertex_id(i, j)
if v1 in self.v
最强大脑《数阵迷踪》python代码
最新推荐文章于 2023-04-07 19:01:23 发布