Dernière fois Le camp d'entraînement pour les débutants arrive.
#35 ABC096-C
** Pensées ** Recherchez un carré noir isolé. Je vérifie tous les points pendant quelques minutes.
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: #Il n'y a pas de noir dans 4 directions
print('No')
quit()
print('Yes')
** Pensées ** Le point culminant est lorsque vous répondez correctement à toutes les questions. Cependant, si le nombre de réponses correctes à toutes les questions est un multiple de 10, il sera égal à 0 tel quel. Par conséquent, le mod 10 est confirmé en soustrayant du score le plus élevé par ordre croissant de score.
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)
** Pensées ** Le traitement est divisé selon que la douche est activée ou non à $ t_i $. S'il y a une douche, le temps de douche restant à $ t_i $ sera écrasé par $ t $. S'il n'y a pas de douche, il y aura une douche de $ t_i $ à $ 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)
** Pensées ** Comme (2,1) - (1,1) et (3,1) - (2,1), la différence entre les mêmes colonnes et lignes sera la même, donc implémentez avec for. ← Cela semble plus facile à résoudre
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
** Pensées ** Recherche complète. Je l'ai TLE avec python, donc je l'ai sorti avec 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)
** Pensées ** Si vous vérifiez en utilisant une liste de contrôle de nombres, $ A_i $ est grand, donc TLE. Alors, triez $ A $ et comparez pour chaque élément adjacent. Ici, si le nombre d'occurrences de $ A_i $ est pair, il ne restera pas jusqu'à la fin, donc l'étrangeté du nombre d'apparitions est jugée. En termes de booléen, l'indicateur qui était initialement True lorsque le nombre d'occurrences était même est devenu la valeur inversée à la limite avec l'élément suivant. Par conséquent, l'authenticité du drapeau lorsque les éléments adjacents ne sont pas les mêmes est évaluée.
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)
Si je ne pouvais pas écrire une recherche complète proprement, j'aurais dû la lancer avec PyPy. à plus,
Recommended Posts