Comme le dit le titre. Je n'ai pas pu répondre à temps, mais je le posterai parce que j'ai tout rempli après le temps. Nous avons évoqué les résultats de la soumission de nombreuses personnes.
J'ai reçu quelques commentaires, j'ai donc fait quelques refactorisations.
A Il se termine par la classification des cas.
# A
S = input()
if S == 'ABC':
print('ARC')
else:
print('ABC')
B Créez un tableau de 1 pour tous les éléments et réécrivez l'élément correspondant à la personne qui a le bonbon à 0. Enfin, prenez la somme de ce tableau.
# B
N, K = map(int, input().split())
sunuke = [1] * N
for i in range(K):
di = int(input())
tmp = map(int, input().split())
for t in tmp:
sunuke[t-1] = 0
print(sum(sunuke))
C Créez un tableau $ A $ avec tous les éléments 0 et une longueur de $ N $. L'élément $ A $ est programmé pour contenir l'élévation maximale d'un autre observatoire connecté à chaque observatoire. Chaque fois que nous recevons la route $ [a, b] $, nous prenons l'élément de $ A $ comme maximum de la hauteur de nous-mêmes et de l'observatoire. Dans le code ci-dessous, la partie mise à jour de $ A [a-1] $ est comparée à un autre observatoire $ b $ connecté à l'observatoire $ a $, et le plus grand est l'observatoire relié à l'observatoire $ a $ par une route. Mettre à jour comme altitude maximale de la plate-forme. La même chose est vraie pour $ A [b-1] $.
# C
N, M = map(int, input().split())
H = list(map(int, input().split()))
A = [0] * N
for i in range(M):
a, b = map(int, input().split())
A[a-1] = max(A[a-1], H[b-1])
A[b-1] = max(A[b-1], H[a-1])
res = sum([H[i] > A[i] for i in range(N)])
print(res)
D Comme il est garanti qu'il existe une solution, vous pouvez l'essayer en la poussant par le bas. La limite supérieure à voir peut être estimée dans une certaine mesure, mais comme il est garanti qu'il existe une solution, je la mets dans le texte à 100 000 lol. Si $ (A, B) $ est la solution, alors $ (A ', B') = (-B, -A) $, donc si les deux $ A et B $ sont négatifs, vous n'avez pas besoin de vérifier les deux s'ils sont positifs. .. Donc, ici, nous supposons $ A> 0 $ et résolvons en incrémentant $ B $ à partir de la région négative de la borne inférieure.
# D
import math
X = int(input())
B = -math.floor(math.pow(X, 0.2))
for b in range(B, 1000):
a = int(math.pow(X + b ** 5, 0.2))
if a ** 5 - b ** 5 == X:
break
print(a, b)
E Vous pouvez assembler selon l'explication officielle.
# E
import collections
N = int(input())
A = list(map(int, input().split()))
d = dict(collections.Counter([i + A[i] for i in range(N)]))
ans = sum([d.get(i - A[i], 0) for i in range(N)])
print(ans)
F Vous pouvez assembler selon l'explication officielle.
# F
N, A, B, C = list(map(int, input().split()))
d = {'A': A, 'B': B, 'C': C}
res = []
SN = [input() for i in range(N)]
for i in range(N):
s = SN[i]
s0 = s[0]
s1 = s[1]
if d[s0] == d[s1] == 0:
print('No')
exit()
elif d[s0] == 0:
d[s0] += 1
d[s1] -= 1
res.append(s0)
elif d[s1] == 0:
d[s0] -= 1
d[s1] += 1
res.append(s1)
elif i == N-1:
res.append(s0)
elif s0 in SN[i+1]:
d[s0] += 1
d[s1] -= 1
res.append(s0)
else:
d[s0] -= 1
d[s1] += 1
res.append(s1)
print('Yes')
for r in res:
print(r)
Recommended Posts