C'est gratuit, et chokudai a dit que je voulais que vous le receviez, alors j'ai participé à la vraie chose contrairement aux deux dernières fois. Le résultat est intermédiaire avec 70 points. La première fois est de 64 points, la deuxième fois est de 76 points Parce que c'est un point, c'est juste au milieu. Je le faisais tôt le matin comme les deux dernières fois, mais comme j'ai dormi pendant 3 heures, je ne pouvais pas m'empêcher d'être somnolent du milieu. C'est peut-être la raison pour laquelle il y avait beaucoup de WA. Je pense au reste, mais je pense que ça va parce que même une tête rafraîchissante peut être résolue et il ne reste qu'une question.
Percer en 2 minutes. Il suffit d'écrire.
s = input()
t = input()
if s == t:
print('same')
elif s.lower() == t.lower():
print('case-insensitive')
else:
print('different')
Cela se fait en 10 minutes et demie. C'est assez difficile même si c'est un problème B!? Au début, cela prend beaucoup de temps parce que la personne qui a résolu la formule de yukicoder tôt a mal compris que c'était le type avec un score élevé.
N, M, Q = map(int, input().split())
score = [N] * (M + 1)
answered = [[False] * (M + 1) for _ in range(N + 1)]
for _ in range(Q):
s = list(map(int, input().split()))
if s[0] == 1:
t = 0
for i in range(1, M + 1):
if answered[s[1]][i]:
t += score[i]
print(t)
elif s[0] == 2:
score[s[2]] -= 1
answered[s[1]][s[2]] = True
Rompre en 13 minutes et demie. Problème TLE2, WA1. C, mais écriture de TLE naïf! En faisant un bug et en mangeant WA, AC.
Explication Implémentation de référence PDF, setrecursionlimit n'a pas de sens, et je ne suis pas sûr que sys.stdin.buffer.readline soit utilisé à la place de sys.stdin.readline, ʻa * r ** (n -1) `Est un maximum de 10 9 + 9 29 </ sup> </ sup>, mais je me demande si c'est bon. O (log N </ i>) Je me demande si je veux éviter d'écrire.
A, R, N = map(int, input().split())
result = A
a = R
b = N - 1
while b != 0 and result <= 1000000000:
if b & 1 != 0:
result *= a
a *= a
b >>= 1
if result > 1000000000:
print('large')
else:
print(result)
Il a éclaté en 9 minutes et demie, ce n'était pas trop difficile parce que j'ai simplement coupé chaque personnage et l'ai mis en correspondance.
N = int(input())
s = [input() for _ in range(5)]
a = [
'.###..#..###.###.#.#.###.###.###.###.###.',
'.#.#.##....#...#.#.#.#...#.....#.#.#.#.#.',
'.#.#..#..###.###.###.###.###...#.###.###.',
'.#.#..#..#.....#...#...#.#.#...#.#.#...#.',
'.###.###.###.###...#.###.###...#.###.###.'
]
result = []
for i in range(N):
t = [s[j][i * 4:(i + 1) * 4] for j in range(5)]
for j in range(10):
for k in range(5):
if t[k] != a[k][j * 4:(j + 1) * 4]:
break
else:
result.append(j)
break
print(''.join(str(i) for i in result))
Percer dans 8 minutes et demie. Même si je lis l'énoncé du problème, je ne sais pas si la couleur de l'arroseur en cours d'exécution va changer, mais je pense que je devrais la changer quand elle deviendra WA, et la soumettre après AC. De ce point de vue, ce serait un problème si les sprinkleurs en cours d'exécution étaient adjacents les uns aux autres, donc il démarrerait et s'arrêterait réellement, puis la requête suivante.
N, M, Q = map(int, input().split())
links = [[] for _ in range(N + 1)]
for _ in range(M):
u, v = map(int, input().split())
links[u].append(v)
links[v].append(u)
c = [0] + list(map(int, input().split()))
for _ in range(Q):
s = list(map(int, input().split()))
if s[0] == 1:
x = s[1]
print(c[x])
for y in links[x]:
c[y] = c[x]
if s[0] == 2:
x, y = s[1:]
print(c[x])
c[x] = y
Il a percé en 40 minutes et demie WA2 J'ai oublié de sortir -1 quand il était inaccessible et de sortir l'infini. J'ai perdu mon temps parce que je n'ai pas pu obtenir l'exemple d'entrée. Eh bien, ce n'est pas si difficile car c'est une recherche avec priorité à la largeur qui me fait penser au nombre de fois que je l'écrirai. −200 ≤ x i </ sub>, y i </ sub>, X, Y ≤ 200 Cependant, si vous en faites un espace, il sera impossible de passer à côté de l'obstacle à la fin, mais ce sera infranchissable. Notez que vous devez étaler un par un en haut, en bas, à gauche et à droite.
from collections import deque
INF = float('inf')
N, X, Y = map(int, input().split())
t = [['.'] * 403 for _ in range(403)]
for _ in range(N):
x, y = map(int, input().split())
t[y + 201][x + 201] = '#'
d = [[INF] * 403 for _ in range(403)]
d[0 + 201][0 + 201] = 0
q = deque([(0, 0)])
while q:
y, x = q.popleft()
i, j = y + 201, x + 201
if i + 1 < 403 and j - 1 >= 0 and t[i + 1][j - 1] != '#' and d[i + 1][j - 1] > d[i][j] + 1:
d[i + 1][j - 1] = d[i][j] + 1
q.append((y + 1, x - 1))
if i + 1 < 403 and j + 1 < 403 and t[i + 1][j + 1] != '#' and d[i + 1][j + 1] > d[i][j] + 1:
d[i + 1][j + 1] = d[i][j] + 1
q.append((y + 1, x + 1))
if i - 1 >= 0 and t[i - 1][j] != '#' and d[i - 1][j] > d[i][j] + 1:
d[i - 1][j] = d[i][j] + 1
q.append((y - 1, x))
if i + 1 < 403 and t[i + 1][j] != '#' and d[i + 1][j] > d[i][j] + 1:
d[i + 1][j] = d[i][j] + 1
q.append((y + 1, x))
if j - 1 >= 0 and t[i][j - 1] != '#' and d[i][j - 1] > d[i][j] + 1:
d[i][j - 1] = d[i][j] + 1
q.append((y, x - 1))
if j + 1 < 403 and t[i][j + 1] != '#' and d[i][j + 1] > d[i][j] + 1:
d[i][j + 1] = d[i][j] + 1
q.append((y, x + 1))
if d[Y + 201][X + 201] == INF:
print(-1)
else:
print(d[Y + 201][X + 201])
Percer en 40 minutes et demie. WA4. Une catastrophe car il s'agit de prendre des caractères de chaque ligne de la matrice et de faire une circulaire, mais mal comprendre que c'est un problème de faire une circulaire en utilisant tous les caractères de la matrice. Je pense que vous pouvez le résoudre si vous savez.
N = int(input())
a = [input() for _ in range(N)]
t = ''
for i in range(N // 2):
u = list(set(a[i]) & set(a[N - 1 - i]))
if len(u) == 0:
print(-1)
exit()
t += u[0]
if N % 2 == 0:
print(t + t[::-1])
else:
print(t + a[N // 2][0] + t[::-1])
Il éclate en 27 minutes et demie Je me suis souvenu de ABC134E --Sequence Decomposing.
N, M = map(int, input().split())
a = list(map(int, input().split()))
eater = [-1] * M
eater[0] = 1
t = [-1] * N
t[0] = a[0]
for i in range(1, M):
ng = -1
ok = N
while abs(ng - ok) > 1:
m = (ok + ng) // 2
if a[i] > t[m]:
ok = m
else:
ng = m
if ok != N:
t[ok] = a[i]
eater[i] = ok + 1
print('\n'.join(str(i) for i in eater))
Percer en 68 minutes WA2, TLE2, RE2. N ≤ 10 5 </ sup> Faire une liste de N × N sans la voir. Génération stupide. Puisqu'il s'agit d'un désastre, je le traite avec O (1) dans la table de lecture, mais j'ai perdu du temps à oublier que l'échange de lignes et de colonnes est permuté au moment de la translocation. N'y a-t-il pas beaucoup de problèmes de requête cette fois? (3 questions) Œil).
from sys import stdin
readline = stdin.readline
N = int(readline())
Q = int(readline())
result = []
transposed = False
rows = list(range(N + 1))
cols = list(range(N + 1))
for _ in range(Q):
Query = list(map(int, readline().split()))
if Query[0] == 1:
A, B = Query[1:]
if not transposed:
t = rows[A]
rows[A] = rows[B]
rows[B] = t
else:
t = cols[A]
cols[A] = cols[B]
cols[B] = t
elif Query[0] == 2:
A, B = Query[1:]
if not transposed:
t = cols[A]
cols[A] = cols[B]
cols[B] = t
else:
t = rows[A]
rows[A] = rows[B]
rows[B] = t
elif Query[0] == 3:
transposed = not transposed
elif Query[0] == 4:
A, B = Query[1:]
y, x = A, B
if transposed:
y, x = x, y
y = rows[y]
x = cols[x]
result.append(N * (y - 1) + x - 1)
print('\n'.join(str(i) for i in result))
Percer en 63 minutes et demie. WA2, RE1. Le plus gros problème cette fois. Si vous pensez que c'est un simple problème avec un DP de distribuer WA. Je ne comprends pas vraiment pourquoi, je suppose que j'ai fait une erreur, alors je l'ai réécrit en langage Go Au moment où j'ai écrit T1 / 2
au milieu de l'écriture, j'ai pensé que je l'éviterais et j'ai dit:" Pourquoi écrivez-vous T1 * 0.5
. C'est un nombre à virgule flottante !!!" Remarqué AC.
N, L = map(int, input().split())
x = set(map(int, input().split()))
T1, T2, T3 = map(int, input().split())
dp = [float('inf')] * (L + 4)
dp[0] = 0
for i in range(L):
a = dp[i] + T1
if i + 1 in x:
a += T3
if dp[i + 1] > a:
dp[i + 1] = a
a = dp[i] + T1 + T2
if i + 2 in x:
a += T3
if dp[i + 2] > a:
dp[i + 2] = a
a = dp[i] + T1 + T2 * 3
if i + 4 in x:
a += T3
if dp[i + 4] > a:
dp[i + 4] = a
result = dp[L]
result = min(result, dp[L - 1] + T1 // 2 + T2 // 2)
result = min(result, dp[L - 2] + T1 // 2 + 3 * T2 // 2)
result = min(result, dp[L - 3] + T1 // 2 + 5 * T2 // 2)
print(result)
J'ai abandonné car il me restait 20 minutes. Quoi qu'il en soit, je dois résoudre 2 questions pour devenir une personne avancée. Si je n'enregistre que ce qui est en dessous, je peux me déplacer avec O (1), mais quel bureau est allumé maintenant? Is O (* N *), je me demandais quoi faire, mais cette fois il y a beaucoup de problèmes de requêtes (4ème question).
J'ai abandonné car il me restait 20 minutes. Quoi qu'il en soit, je dois résoudre 2 questions avant de pouvoir devenir un joueur avancé 1 ≤ a i </ sub> ≤ 2 Alors puis-je avoir deux files d'attente prioritaires? Is O (* N *), alors j'ai pensé que ce serait impossible, peut-être un arbre de dichotomie équilibré.
Recommended Posts