Pourquoi est-ce que le simple fait de regarder les mathématiques des cordes me motive?
Considérons une séquence entière continue de longueur 3. 0 + 1 + 2 = 3, qui peut être + 3n, de sorte que tout multiple de 3 peut être généré. Une séquence entière similaire de longueur 4 est 4n + 2, longueur 5 On peut voir que 5n peut être généré pour la séquence entière de, et 6n + 3 peut être généré pour la chaîne entière de longueur 6. En résumé, la séquence entière de longueur n est un multiple de n lorsque n est impair, et n est pair. On peut voir qu'un multiple de n + (n / 2) peut être généré à.
En d'autres termes, si A est pair, il peut toujours être généré par une chaîne entière continue de longueur 2A. Si A est impair, il peut toujours être généré par une chaîne entière continue de longueur A ou de longueur 2A. Puisqu'une chaîne entière continue de 1 et 2 ne peut pas être utilisée, seul 1 est un entier qui ne peut pas être généré.
A = int(input())
if A == 1:
print('NO')
else:
print('YES')
Si vous effectuez l'opération 1 une seule fois, ce ne sera pas un entier et ne correspondra jamais. Cependant, si vous le faites deux fois, il reviendra à la valeur d'origine. Ensuite, puisque seulement 2 peuvent être utilisés, A, B, C et D, Si les entiers qui composent E et F changent simplement l'ordre, vous n'avez qu'à faire l'opération 2 une seule fois avec "Oui", sinon ce sera "Non".
A, B, C = map(int, input().split())
D, E, F = map(int, input().split())
if sorted([A, B, C]) == sorted([D, E, F]):
print('Yes')
print(2)
else:
print('No')
Ce que vous voulez, c'est N </ sub> C 0 </ sub> M 0 </ sup> + N </ sub> C 2 </ strong> quand X = 0 sub> M 2 </ sup> + ..., et quand X = 1, N </ sub> C 1 </ sub> M 1 </ sup> + N </ sub> C 3 </ sub> M 3 </ sup> + ... Au fait, (M + 1) N </ sup> = N </ sub> C N </ sub> M N </ sup> + N </ sub> C N-1 </ sub> M N- 1 </ sup> + ... + N </ sub> C 0 </ sub> M 0 </ sup> (M-1) N </ sup> > = N </ sub> C N </ sub> M N </ sup> - N </ sub> C N-1 </ sub> M < À partir de sup> N-1 </ sup> + ..., nous pouvons calculer ce que nous pouvons trouver à partir de (M + 1) N </ sup> et (M-1) N </ sup>.
from sys import stdin
readline = stdin.readline
m = 1000000007
S = int(readline())
div2 = pow(2, m - 2, m)
for _ in range(S):
N, M, X = map(int, readline().split())
a = pow(M + 1, N, m)
b = pow(M - 1, N, m)
if (N + X) % 2 == 0:
print((a + b) * div2 % m)
else:
print((a - b) * div2 % m)
Recommended Posts