Résoudre ABC168D en Python

introduction

Je n'ai pas pu le résoudre à ABC hier et je ne pouvais pas dormir la nuit, alors je vais le revoir.

.. (Double Dots)

** Pensées ** En raison de restrictions, les graphiques donnés sont concaténés car il est possible de se déplacer entre les pièces en utilisant plusieurs routes. S'il s'agit d'un graphe concaténé, il ressemblera toujours à une construction. Si vous le soumettez avec print ('Non'), ce sera 0AC. La solution est de rechercher le guide à partir de 1 à la même profondeur, et lorsque vous atteignez une pièce plus profonde que vous, placez le guide dans votre pièce. C'est facile à mettre en œuvre avec BFS.

ver est une liste de salles accessibles depuis ver [i] en une seule fois

from collections import deque
n, m = map(int,input().split())
ab = [list(map(int,input().split())) for _ in range(m)]

q = deque([])
path = [-1] * n
ver = [[] for _ in range(n)]
for i in range(m):
    ab[i].sort()
    if ab[i][0] == 1:
        q.append([ab[i][0]-1,ab[i][1]-1])
        #path[ab[i][1]-1] = 1
    ver[ab[i][0]-1].append(ab[i][1]-1)
    ver[ab[i][1]-1].append(ab[i][0]-1)

def bfs(q, visited_list):
    while len(q) > 0:
        now = q.popleft()
        go = now[1]
        if visited_list[go] == -1:
            visited_list[go] = now[0]+1
            for i in range(len(ver[go])):
                q.append([go,ver[go][i]])
    return visited_list
ans = bfs(q,path)
print('Yes')
for i in range(1,n):
    print(ans[i])

Le montant du calcul est de O $ (N + M) $

Résumé

C'était un problème très fondamental. Hier, j'avais l'impression de tourner, alors je ferai de mon mieux pour en terminer un lors du prochain AGC. à plus.

De côté

Les problèmes de graphes sont faciles à penser en utilisant this.

Recommended Posts

Résoudre ABC168D en Python
Résolvez ABC167-D avec Python
Résoudre ABC159-D en Python
Résolvez ABC146-C avec Python
Résoudre ABC098-C en Python
Résolvez ABC169 avec Python
Résolvez ABC160-E avec Python
Résoudre ABC176 E en Python
Résolvez des exercices Wooldridge en Python
Résoudre ABC175 D en Python
[Python] ABC175D
Résoudre les problèmes d'optimisation avec Python
Résoudre Atcoder ABC169 A-D avec Python
Résoudre ABC036 A ~ C avec Python
Résoudre ABC037 A ~ C avec Python
Résoudre des équations différentielles normales en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
[Python] DP ABC184D
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
[Python] UnionFind ABC177D
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
ABC 157 D - Résolvez les suggestions d'amis en Python!