J'ai terminé le problème E en 20 minutes, et j'ai pensé que c'était la première complétude!? J'étais censé regarder pendant 80 minutes.
Percer en une minute et demie. Il suffit d'écrire.
A = input()
if A.isupper():
print('A')
else:
print('a')
Rompre en une minute et demie. Il suffit d'écrire. N'est-il pas rare qu'un tri apparaisse dans le problème B?
N, K = map(int, input().split())
p = list(map(int, input().split()))
p.sort()
print(sum(p[:K]))
ABC171C - One Quadrillion and One Dalmatians
Il a éclaté en 5 minutes et demie. J'avais écrit une conversion bidirectionnelle des noms et des numéros de colonne EXCEL dans le passé, alors je l'ai retiré et laissé tomber en Python. Il semble que la zone qui n'est pas subtilement 26-aire est dégoûtante.
N = int(input())
t = []
while N > 0:
N -= 1
t.append(chr(N % 26 + ord('a')))
N //= 26
print(''.join(t[::-1]))
Percer en 6 minutes. Je me suis souvenu de [ABC170E --Count Median] de la semaine dernière (https://atcoder.jp/contests/abc170/tasks/abc170_e). Boucle de l'opération consistant à soustraire la valeur actuelle et à ajouter la nouvelle valeur Si vous calculez la valeur totale de chaque boucle, ce sera * O * (* NQ ), mais le montant du calcul sera * O * ( N * + * Q *) en soustrayant et en ajoutant. ) Peut être résolu.
from sys import stdin
readline = stdin.readline
N = int(readline())
A = list(map(int, readline().split()))
Q = int(readline())
t = [0] * (10 ** 5 + 1)
s = sum(A)
for a in A:
t[a] += 1
for _ in range(Q):
B, C = map(int, readline().split())
s -= B * t[B]
s += C * t[B]
t[C] += t[B]
t[B] = 0
print(s)
Cela a éclaté en 5 minutes. C'était trop facile à première vue, et j'ai pensé que c'était une mauvaise lecture pendant un moment. D'après les caractéristiques de xor, je sais que si je xor tous les xor autres que moi et tous xor y compris moi-même, je sortirai. Et vous pouvez voir que si vous xou tout a, vous pouvez faire tout xor y compris vous-même.
N = int(input())
a = list(map(int, input().split()))
t = 0
for e in a:
t ^= e
print(*[e ^ t for e in a])
Je ne sais pas du tout. Merci beaucoup. Même si j'insère un o dans le oof de l'exemple d'entrée, il double trois, mais je ne vois pas comment supprimer cette duplication.
Postscript: Je l'ai implémenté selon la vidéo d'explication. Je l'ai posté sans réfléchir et je suis devenu TLE, mais on m'a demandé, mais depuis j'ai fait un tableau de 10 12 </ sup> Je veux dire, je n'ai pas bien passé PyPy, même si c'était à peine possible, ça ... Cependant, le sentiment mjd au moment où j'ai entendu l'explication que abc et aaa sont en fait les mêmes. La valeur d'expérience tirée de ce problème était incroyable. Je pense que c'était cher.
K = int(input())
S = input()
m = 1000000007
def make_factorial_table(n):
result = [0] * (n + 1)
result[0] = 1
for i in range(1, n + 1):
result[i] = result[i - 1] * i % m
return result
def mcomb(n, k):
if n == 0 and k == 0:
return 1
if n < k or k < 0:
return 0
return fac[n] * pow(fac[n - k], m - 2, m) * pow(fac[k], m - 2, m) % m
fac = make_factorial_table(len(S) - 1 + K)
result = 0
for i in range(K + 1):
result += pow(26, i, m) * mcomb(len(S) - 1 + K - i, len(S) - 1) * pow(25, K - i, m)
result %= m
print(result)
Recommended Posts