Gehen Sie einfach um die Schleife herum, suchen Sie die nicht übereinstimmenden Indizes und drucken Sie XtoY.
S = input()
for i in range(26):
a = chr(i + ord('a'))
if S[i] == a:
continue
print('%sto%s' % (a, S[i]))
break
B 1218 Something Like a Theorem
Selbst wenn ich überall gesucht habe, ohne an irgendetwas zu denken, wurde es nicht zu TLE, und das war es.
n, z = map(int, input().split())
for x in range(1, z + 1):
for y in range(x, z + 1):
if x ** n + y ** n == z ** n:
print('Yes')
exit()
print('No')
Als Operation wird A i </ sub> = i ganz links betrieben und wiederholt. Wenn Sie es jedoch naiv implementieren, um es zu simulieren, ist es natürlich TLE (Beachten Sie, dass es mit heapq implementiert und erfahren ist Orz). Wenn Sie sorgfältig darüber nachdenken, addieren Sie die Häufigkeit, mit der Sie A i + 1 </ sub> gelöscht haben, zu A N </ sub> rechts von A i </ sub>. Wenn das Stapeln c ist, sollte c + A i </ sub> ein Vielfaches von i sein. Beim Scannen von rechts während des Stapelns von c, * O * (* N *) Kann gelöst werden.
N, *A = map(int, open(0).read().split())
c = 0
for i in range(N - 1, -1, -1):
if (A[i] + c) % (i + 1) != 0:
print('No')
break
c += (A[i] + c) // (i + 1)
else:
print('Yes')
Recommended Posts