Lösen Sie Lake Counting (POJ NO.2386) mit Python3

Praktische Übungen für Ameisenbücher Anfängerausgabe

Ich studiere für einen Wettkampfprofi. Ich habe Lake Counting, das für Erkundungsprobleme bekannt ist, mit Python gelöst, also werde ich es hier posten. Die meisten Leute lösen es mit einer rekursiven Funktion, aber ich habe es mit einem Stapel gelöst (ich kann mich noch nicht zurückziehen ...) Unten ist der Code, den ich implementiert habe. Ich habe nur zwei Testfälle ausprobiert. Es tut mir leid, wenn es Muster gibt, mit denen ich nicht umgehen kann.

lakecounting.py


n,m=map(int,input().split())
field=[list(input()) for i in range(n)]
visited = [[0 for i in range(m)] for j in range(n)]
move = [[0,1],[1,0],[1,1],[0,-1],[-1,0],[-1,-1],[1,-1],[-1,1]]

cnt=0

for i in range(n):
    for j in range(m):
        if field[i][j] == "W" and visited[i][j]==0:
            sx,sy=i,j
            stack=[[sx,sy]]
            visited[sx][sy]=1
            while stack:
                x,y = stack.pop()
                for k in range(8):
                    nx,ny = x+move[k][0],y+move[k][1]
                    if 0<=nx<n and 0<=ny<m and visited[nx][ny]==0 and field[nx][ny]=="W":
                        stack.append([nx,ny])
                        visited[nx][ny]=1
            cnt += 1
print(cnt)

Es wird in Form eines Empfangs von Standardeingaben geschrieben. Bitte weisen Sie auf Fehler hin.

Recommended Posts

Lösen Sie Lake Counting (POJ NO.2386) mit Python3
Löse POJ 2386 mit Python
Löse AtCoder 167 mit Python
Löse Mathe mit Python
[Python] Löse Gleichungen mit Sympy
Löse AtCoder ABC166 mit Python
Solver> Link> Lösen Sie Excel Solver mit Python
Löse ABC163 A ~ C mit Python
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
Löse ABC168 A ~ C mit Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Plötzlich mit Python PyInstaller Kein Modul namens pyinstaller
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Löse AtCoder ABC168 mit Python (A ~ D)
Ich wollte ABC172 mit Python lösen
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Lösen wir simultane lineare Gleichungen mit Python Sympy!
Ich wollte den NOMURA Contest 2020 mit Python lösen
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
Löse A ~ D des Yuki-Codierers 247 mit Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Ich möchte APG4b mit Python lösen (Kapitel 2)
Zundokokiyoshi mit Python
Parallele Verarbeitung ohne tiefe Bedeutung in Python
Einfache LASSO-Regressionsanalyse mit Python (keine Theorie)
Löse "AtCoder Version! Arimoto (Anfänger)" mit Python!
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Ich habe versucht, Soma Cube mit Python zu lösen
Lösen Sie simultane normale Differentialgleichungen mit Python und SymPy.
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Löse ABC168D in Python
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
Löse ABC167-D mit Python