Advertisement
jbn6972

Untitled

Aug 1st, 2022
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. ------------------------------BSF------------------------------
  2. from collections import defaultdict
  3.  
  4.  
  5. graph = defaultdict(list)
  6.  
  7. def addEdge(u,v):
  8.     graph[u].append(v)
  9.     graph[v].append(u)
  10.  
  11. def BFS(source):
  12.     open = []
  13.     closed = []
  14.     open.append(source)
  15.     while len(open) > 0:
  16.         node = open[0]
  17.         print(node,sep=" ")
  18.         closed.append(node)
  19.         open.pop(0)
  20.         # print(top)
  21.         neighbours = graph[node]
  22.  
  23.         for neighbour in neighbours:
  24.             if neighbour not in open and neighbour not in closed:
  25.                 # open = open.append(neighbour)
  26.                 open = open + [neighbour]
  27.  
  28.  
  29. addEdge(1,2)
  30. addEdge(1,3)
  31. addEdge(2,4)
  32. addEdge(2,5)
  33. addEdge(3,6)
  34. addEdge(3,7)
  35. BFS(1)
  36.  
  37. --------------------------------n QUEENS--------------------
  38.  
  39. def isSafe(board,row,col):
  40.     for i in range(col):
  41.         if board[row][i] == 1:
  42.             return False
  43.  
  44.     for i,j in zip(range(row,-1,-1),range(col,-1,-1)):
  45.         if board[i][j] == 1:
  46.             return False
  47.  
  48.  
  49.     for i,j in zip(range(row,N),range(col,-1,-1)):
  50.         if board[i][j] == 1:
  51.             return False
  52.  
  53.     return True
  54.  
  55. def solve(board,col):
  56.     if col >= N:
  57.         return True
  58.  
  59.     for row in range(N):
  60.         if isSafe(board,row,col):
  61.             board[row][col] = 1
  62.  
  63.             if solve(board,col+1):
  64.                 return True
  65.  
  66.             board[row][col] = 0
  67.  
  68.     return False
  69.  
  70. N = 3
  71. board = [[0 for _ in range(N)] for _ in range(N)]
  72. if solve(board,0):
  73.     for row in board:
  74.         print(row)
  75. else:
  76.     print("Cant place "+ str(N) + " queens on NxN matrix")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement