Löse den Atcoder ABC176 (A, B, C, E) in Python

Während des Tests habe ich 3 Fragen gelöst, A, B und C. D und E waren während des Wettbewerbs TLE.

A - Takoyaki

Kommentar: Nichts besonderes

N, X, T = map(int, input().split())

if N % X == 0:
    print(N // X * T)
else:
    print((N // X + 1) * T)

B - Multiple of 9

Kommentar: Nichts besonderes (einfacher als A ...?)

N = int(input())

if N % 9 == 0:
    print("Yes")
else:
    print("No")

C - Step

Kommentar: Nichts besonderes

N = int(input())
A_L = [int(x) for x in input().split()]

ans = 0
_a = A_L[0]
for i in range(1, N):
    _ca = A_L[i]
    ans += max(_a - _ca, 0)
    _a = max(_ca, _a)

print(ans)

D - Wizard in Maze

Kommentar: Ich weiß nicht, ob ich die Breitenprioritätssuche oder die Tiefenprioritätssuche verwenden soll. Vorerst habe ich versucht, die Tiefenprioritätssuche zu verwenden, die einfach zu implementieren ist, aber TLE. Wenn ich mir die Erklärung anschaue, scheint sie durch die Suche nach Breitenpriorität gelöst zu werden, wenn ich also Zeit habe Mit Breitenprioritätssuche auflösen.

# TLE
import sys

sys.setrecursionlimit(10**9)

H, W = map(int, input().split())
C_L = [int(_)-1 for _ in input().split()]
D_L = [int(_)-1 for _ in input().split()]
S_L = [[x for x in input()] for y in range(H)]


ans = 0
c_l = [[float("Inf")] * W for _ in range(H)]


def dfs(x, y, c):
    if not(0 <= x < W) or not(0 <= y < H) or S_L[y][x] == "#":
        return
    if c_l[y][x] > c:
        c_l[y][x] = c

        # no magic
        dfs(x+1, y, c)
        dfs(x-1, y, c)
        dfs(x, y+1, c)
        dfs(x, y-1, c)

        # use magic
        for _x in range(-2, 3):
            for _y in range(-2, 3):
                if (_x == -1 and _y == 0) or (_x == 1 and _y == 0)\
                        or (_x == 0 and _y == -1) or (_x == 0 and _y == 1)\
                        or (_x == 0 and _y == 0):
                    continue
                dfs(x+_x, y+_y, c+1)


dfs(C_L[1], C_L[0], 0)

if c_l[D_L[0]][D_L[1]] == float("Inf"):
    print("-1")
else:
    print(c_l[D_L[0]][D_L[1]])

E - Bomber

Kommentar: Die Lösung war einfach, wurde jedoch zu TLE, da sie während des Wettbewerbs in der Liste implementiert wurde. Ich war mir nicht bewusst, wie man Listen, Einstellungen und Tupel in Bezug auf die Geschwindigkeit verwendet, daher werde ich in Zukunft vorsichtig sein.

Unterschied zwischen TLE und AC

TLE

HW_L = [[int(x)-1 for x in input().split()] for y in range(M)]

AC

HW_L = set(tuple(int(x)-1 for x in input().split()) for y in range(M))

Ganzer Code

H, W, M = map(int, input().split())
HW_L = set(tuple(int(x)-1 for x in input().split()) for y in range(M))

w_l = [0] * W
h_l = [0] * H

for _hi, _wi in HW_L:
    w_l[_wi] += 1
    h_l[_hi] += 1

max_h = max(h_l)
max_w = max(w_l)

h_idx = [i for i, x in enumerate(h_l) if x == max_h]
w_idx = [i for i, x in enumerate(w_l) if x == max_w]

ans = max_h + max_w - 1

for hi in h_idx:
    for wj in w_idx:
        if (hi, wj) not in HW_L:
            ans = max_h + max_w
            break
    else:
        continue
    break

print(ans)

Recommended Posts

Löse den Atcoder ABC176 (A, B, C, E) in Python
Löse ABC175 A, B, C mit Python
Löse ABC036 A ~ C mit Python
Löse ABC037 A ~ C mit Python
Löse ABC165 A, B, D mit Python
AtCoder ABC 177 Python (A ~ E)
AtCoder ABC 178 Python (A ~ E)
Löse ABC176 E in Python
Löse ABC163 A ~ C mit Python
ABC127 A, B, C Erklärung (Python)
ABC166 in Python A ~ C Problem
Löse den Atcoder ABC169 A-D mit Python
Löse ABC168 A ~ C mit Python
Löse ABC162 A ~ C mit Python
Vorlage AtCoder ABC 179 Python (A ~ E)
Löse ABC167 A ~ C mit Python
ABC128 A, B, C Kommentar (Python)
ABC126 A, B, C Erklärung (Python)
[AtCoder Erklärung] Kontrollieren Sie ABC180 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC158 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC164 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC168 A, B, C Probleme mit Python!
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Löse AtCoder ABC168 mit Python (A ~ D)
Löse ABC169 mit Python
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
Löse AtCoder ABC166 mit Python
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B- und C-Probleme von ABC182 mit Python!
Atcoder ABC164 A-C in Python
ABC129 A, B, C Kommentar
Atcoder ABC167 A-D in Python
Löse ABC175 D in Python
Atcoder ABC165 A-D in Python
Atcoder ABC166 A-E in Python
AtCoder ABC 182 Python (A ~ D)
[AtCoder Erklärung] Kontrollieren Sie ABC184 A, B, C Probleme mit Python!
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
[AtCoder-Erklärung] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC183 mit Python!
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
Löse ABC166 A ~ D mit Python
AtCoder ABC 114 C-755 mit Python3 gelöst
AtCoder ABC151 Problem D Geschwindigkeitsvergleich in C ++ / Python / PyPy
AtCoder ABC168 Ein in Ruby und Python gelöster Fallausdruck
AtCoder ABC 174 Python
Ich wollte ABC159 mit Python lösen
AtCoder ABC 175 Python
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
Was passiert, wenn Sie in Python "A, B als C importieren"?
Rufen Sie Python-Skripte aus Embedded Python in C ++ / C ++ auf
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python