Löse ABC168D in Python

Einführung

Ich konnte es gestern bei ABC nicht lösen und ich konnte nachts nicht schlafen, also werde ich es überprüfen.

.. (Double Dots)

** Gedanken ** Aufgrund von Einschränkungen werden die angegebenen Grafiken verkettet, da zwischen mehreren Straßen zwischen Räumen gewechselt werden kann. Wenn es sich um ein verkettetes Diagramm handelt, sieht es immer wie eine Konstruktion aus. Wenn Sie es mit Druck ('Nein') einreichen, ist es 0AC. Die Lösung besteht darin, die Führung von 1 in derselben Tiefe zu durchsuchen. Wenn Sie einen Raum erreichen, der tiefer als Sie ist, platzieren Sie die Führung in Ihrem Raum. Dies ist mit BFS einfach zu implementieren.

ver ist eine Liste von Räumen, die von ver [i] auf einmal erreicht werden können

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])

Der Berechnungsbetrag beträgt $ O (N + M) $

Zusammenfassung

Es war ein sehr grundlegendes Problem. Gestern hatte ich das Gefühl, ich würde mich drehen, also werde ich mein Bestes geben, um einen bei der nächsten AGC zu absolvieren. wir sehen uns.

Beiseite

Bei der Verwendung von this kann man sich Grafikprobleme leicht vorstellen.

Recommended Posts

Löse ABC168D in Python
Löse ABC167-D mit Python
Löse ABC159-D in Python
Löse ABC146-C mit Python
Löse ABC098-C in Python
Löse ABC169 mit Python
Löse ABC160-E mit Python
Löse ABC176 E in Python
Löse Wooldridge-Übungen in Python
Löse ABC175 D in Python
[Python] ABC175D
Lösen Sie Optimierungsprobleme mit Python
Löse den Atcoder ABC169 A-D mit Python
Löse ABC036 A ~ C mit Python
Löse ABC037 A ~ C mit Python
Lösen Sie normale Differentialgleichungen in Python
Quadtree in Python --2
Python in der Optimierung
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
[Python] DP ABC184D
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
[Python] UnionFind ABC177D
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
ABC 157 D - Lösungsvorschläge für Freunde in Python!