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')
** 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)
** 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)
** 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)
** 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)
Wenn ich eine vollständige Suche nicht sauber schreiben könnte, hätte ich sie mit PyPy ausgeben sollen. wir sehen uns,
Recommended Posts