Täglicher AtCoder # 35 mit Python

Einführung

Letztes Mal Boot Camp für Anfänger kommt.

#35 ABC096-C

** Gedanken ** Suchen Sie nach einem isolierten schwarzen Quadrat. Ich checke alle Punkte für Minuten ein.

h, w = map(int,input().split())
s = [input() for _ in range(h)]

for i in range(h):
    for j in range(w):
        if s[i][j] == '#':
            check = 0
            for x, y in ([1,0],[0,1],[0,-1],[-1,0]):
                new_h, new_w = i + x, j + y
                #print(new_h,new_w)
                if new_h < 0 or new_h >= h or new_w < 0 or new_w >= w:
                    continue
                if s[new_h][new_w] == '.':
                    check += 1
            if check == 4: #Es gibt kein Schwarz in 4 Richtungen
                print('No')
                quit()
print('Yes')

ABC063-C

** Gedanken ** Der höchste Punkt ist, wenn Sie alle Fragen richtig beantworten. Wenn die Anzahl der richtigen Antworten auf alle Fragen jedoch ein Vielfaches von 10 ist, ist sie so wie sie ist 0. Daher wird Mod 10 durch Subtrahieren von der höchsten Punktzahl in aufsteigender Reihenfolge der Punktzahl bestätigt.

n = int(input())
s = [int(input()) for _ in range(n)]

s.sort()
ans = sum(s)
if ans % 10 != 0:
    print(ans)
    quit()
else:
    for i in range(n):
        if (ans-s[i]) % 10 != 0:
            print(ans-s[i])
            quit()

print(0)

ARC073-C

** Gedanken ** Die Verarbeitung wird danach aufgeteilt, ob die Dusche bei $ t_i $ eingeschaltet ist oder nicht. Wenn es eine Dusche gibt, wird die verbleibende Duschzeit bei $ t_i $ um $ t $ überschrieben. Wenn es keine Dusche gibt, gibt es eine Dusche von $ t_i $ bis $ t + t_i $.

n, t = map(int,input().split())
time = list(map(int,input().split()))

ans = 0
wait = 0
for i in range(n):
    if i == 0:
        ans += t
        wait += t
    if wait <= time[i]:
        ans += t
        wait = time[i] + t
    else:
        c = (wait - time[i])
        ans -= c
        ans += t
        wait = time[i] + t

print(ans)

ABC088-C

** Gedanken ** Wie bei (2,1) - (1,1) und (3,1) - (2,1) ist der Unterschied zwischen denselben Spalten und Zeilen gleich. Implementieren Sie also mit for. ← Es scheint einfacher zu lösen zu sein

c = [list(map(int,input().split())) for _ in range(3)]

for i in range(2):
    for j in range(1,3):
        if c[i][j] - c[i][j-1] != c[i+1][j] - c[i+1][j-1]:
            print('No')
            quit()
for i in range(1,3):
    for j in range(2):
        #print(c[i][j] , c[i-1][j])
        #print(c[i][j+1] , c[i-1][j+1])
        if c[i][j] - c[i-1][j] != c[i][j+1] - c[i-1][j+1]:
            print('No')
            quit()
print('Yes')

diverta 2019 Programming Contest-B

** Gedanken ** Volle Suche. Ich TLE es mit Python, also lösche ich es mit Pypy.

r, g, b, n = map(int,input().split())

ans = 0
for i in range(n//r+1):
    for j in range(n//g+1):
        bule_ball = (n - (r * i + g * j)) // b
        sum_ball = bule_ball * b + i * r + j * g
        #print(i,j,bule_ball)
        if bule_ball >= 0 and sum_ball == n:
            ans += 1

print(ans)

ABC073-C

** Gedanken ** Wenn Sie anhand einer Checkliste mit Zahlen prüfen, ist $ A_i $ groß, also TLE. Sortieren Sie also $ A $ und vergleichen Sie für jedes benachbarte Element. Wenn hier die Anzahl der Vorkommen von $ A_i $ gerade ist, bleibt sie nicht bis zum Ende bestehen, sodass die Seltsamkeit der Anzahl der Auftritte beurteilt wird. In Bezug auf bool wird das Flag, das anfangs True war, als die Anzahl der Vorkommen gerade war, an der Grenze zum nächsten Element invertiert. Daher wird die Echtheit des Flags beurteilt, wenn benachbarte Elemente nicht gleich sind.

n = int(input())
a = [int(input()) for _ in range(n)]

a.sort()
a.append(0)
ans = 0
flag = True
for i in range(1,n+1):
    if a[i] == a[i-1]:
        flag = not flag
    else:
        if flag:
            ans += 1
        flag = True
    #print(flag)
    #print(a[i])
print(ans)

Zusammenfassung

Wenn ich eine vollständige Suche nicht sauber schreiben könnte, hätte ich sie mit PyPy ausgeben sollen. wir sehen uns,

Recommended Posts

Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 33 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 47 mit Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Täglicher AtCoder # 35 mit Python
AtCoder # 9 jeden Tag mit Python
Täglicher AtCoder # 44 mit Python
Jeden Tag mit Python AtCoder # 41
Atcoder ABC164 A-C in Python
atCoder 173 Python
Python-Eingabehinweis in AtCoder
Atcoder ABC167 A-D in Python
Atcoder ABC165 A-D in Python
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python
Löse den Atcoder ABC169 A-D mit Python
[Python] Grundkenntnisse in AtCoder
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda