Letztes Mal Ich werde ein Bootcamp für Anfänger machen
#34 ABC075-B
** Gedanken ** Einfach durch for und if ersetzen
h, w = map(int,input().split())
s = [list(input()) for _ in range(h)]
for i in range(h):
for j in range(w):
count = 0
if s[i][j] == '#':
continue
for n, m in ([-1,1],[-1,0],[-1,-1],[0,1],[0,-1],[1,1],[1,0],[1,-1]):
if i + n < 0 or i + n >= h or j + m < 0 or j + m >= w:
continue
if s[i+n][j+m] == '#':
count += 1
s[i][j] = str(count)
ans = ''
for i in range(h):
c = ''.join(s[i])
ans += c
if i != h-1:
ans += '\n'
print(ans)
** Gedanken ** Suche einfach alle
n = int(input())
s = input()
ans = 0
for i in range(1,n):
x = list(set(list(s[:i])))
y = list(set(list(s[i:])))
c, d = 0, 0
for j in x:
c += y.count(j)
for j in y:
d += x.count(j)
ans = max(c,d,ans)
print(ans)
ABC064-C 2WA
** Gedanken ** Ich habe beim Schreiben der Bedingungen einen Fehler gemacht und 2WA erhalten. Der Mindestwert ist, wenn 3200 oder mehr Personen der Farbe von 3200 oder weniger Personen entsprechen oder wenn keine 3200 oder weniger Personen vorhanden sind, 3200 oder mehr Personen dieselbe Farbe verwenden. Der Maximalwert wird erreicht, wenn mehr als 3200 Personen unterschiedliche Farben verwenden.
n = int(input())
a = list(map(int,input().split()))
check = [False] * 8
r = 0
for i in range(n):
if a[i] < 400:
check[0] = True
elif 400 <= a[i] < 800:
check[1] = True
elif 800 <= a[i] < 1200:
check[2] = True
elif 1200 <= a[i] < 1600:
check[3] = True
elif 1600 <= a[i] < 2000:
check[4] = True
elif 2000 <= a[i] < 2400:
check[5] = True
elif 2400 <= a[i] < 2800:
check[6] = True
elif 2800 <= a[i] < 3200:
check[7] = True
else:
r += 1
color = 0
ans_max = r
for i in range(8):
if check[i]:
color += 1
ans_max += 1
ans_min = max(color,1)
print(ans_min,ans_max)
ABC060-B 1WA,1TLE
** Gedanken ** Egal wie viele Vielfache von A hinzugefügt werden, es ist ein Vielfaches von A, also habe ich überall in a gesucht. Der Bereich kann bis zu b sein, aber ich habe bis zu ungefähr 10 ** 5 gesucht.
import math
a, b, c = map(int,input().split())
for i in range(10**5):
n = a * i
if n % b == c:
print('YES')
quit()
print('NO')
** Gedanken ** Notieren Sie die von jeder Operation erzeugten Ganzzahlen und nehmen Sie ihr Maximum. Die gleiche Zahl kann von der Operation nicht erzeugt werden (da die ganzen Zahlen +1, -1, +0 sind), also habe ich es auf diese Weise gelöst.
n = int(input())
a = list(map(int,input().split()))
num = [0] * (10**5+3)
for i in range(n):
num[a[i]] += 1
num[a[i]+2] += 1
num[a[i]+1] += 1
print(max(num))
** Gedanken ** Für jeden Schüler werden die Entfernungen zu allen Kontrollpunkten berechnet und der Mindestwert ermittelt.
n, m = map(int,input().split())
ab = [list(map(int,input().split())) for _ in range(n)]
cd = [list(map(int,input().split())) for _ in range(m)]
for i in range(n):
dis = []
for j in range(m):
dis.append(abs(ab[i][0]-cd[j][0])+abs(ab[i][1]-cd[j][1]))
ans = dis.index(min(dis))
print(ans+1)
** Gedanken ** Das Verarbeiten von Spalten und Zeilen war sehr mühsam. Es ist ein schmutziger Code ...
h, w = map(int,input().split())
a = [input() for _ in range(h)]
remove_a = []
for i in range(h): #neben an'.'Löschen Sie die Verbindung
if '#' in a[i]:
remove_a.append(list(a[i]))
n = len(remove_a)
l = []
for i in range(w):
s = ''
for j in range(n):
s += remove_a[j][i]
if '#' in s: #Vertikal'.'Löschen Sie die Verbindung
l.append(list(s))
ans = ''
for i in range(len(l[0])): #Da die Vertikale und die Horizontale durch die obige Operation umgeschaltet werden, beheben Sie sie
s = ''
for j in range(len(l)):
s += l[j][i]
ans += s
if i != len(l[0])-1: #Die letzte Zeile wird nicht unterbrochen
ans += '\n' #Vergessen Sie nicht den Zeilenumbruch
print(ans)
Bis auf das letzte Problem war es einfach. Wir sehen uns wieder, gute Nacht
Recommended Posts