Dernière fois Je ferai un camp d'entraînement pour les débutants
#34 ABC075-B
** Pensées ** Remplacez simplement par for et if
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)
** Pensées ** Cherchez tout
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
** Pensées ** J'ai fait une erreur en écrivant les conditions et j'ai obtenu 2WA. La valeur minimale est lorsque 3200 personnes ou plus correspondent à la couleur de 3200 personnes ou moins, ou lorsqu'il n'y a pas de personnes 3200 ou moins, 3200 personnes ou plus utilisent la même couleur. La valeur maximale est obtenue lorsque plus de 3200 personnes utilisent des couleurs différentes.
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
** Pensées ** Peu importe le nombre de multiples de A ajoutés, c'est un multiple de A, donc j'ai cherché partout dans a. La plage peut aller jusqu'à b, mais j'ai recherché jusqu'à environ 10 ** 5.
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')
** Pensées ** Enregistrez les nombres entiers produits par chaque opération et prenez leur maximum. Le même nombre ne peut pas être produit par l'opération (car les entiers sont +1, -1, +0), donc cette méthode a été utilisée.
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))
** Pensées ** Pour chaque élève, les distances à tous les points de contrôle sont calculées et la valeur minimale est prise.
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)
** Pensées ** Le traitement des colonnes et des lignes était très fastidieux. C'est un code sale ...
h, w = map(int,input().split())
a = [input() for _ in range(h)]
remove_a = []
for i in range(h): #à côté de'.'Supprimer la connexion
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: #Verticale'.'Supprimer la connexion
l.append(list(s))
ans = ''
for i in range(len(l[0])): #Puisque la verticale et l'horizontale sont commutées par l'opération ci-dessus, fixez-la
s = ''
for j in range(len(l)):
s += l[j][i]
ans += s
if i != len(l[0])-1: #La dernière ligne ne casse pas
ans += '\n' #N'oubliez pas le saut de ligne
print(ans)
C'était facile sauf pour le dernier problème. A bientôt, bonne nuit
Recommended Posts