Warum motiviert mich schon das Betrachten der String-Mathematik?
Betrachten Sie eine kontinuierliche ganzzahlige Folge der Länge 3. 0 + 1 + 2 = 3 kann + 3n sein, so dass ein beliebiges Vielfaches von 3 erzeugt werden kann. Eine ähnliche ganzzahlige Folge der Länge 4 ist 4n + 2, Länge 5 Es ist ersichtlich, dass 5n für die ganzzahlige Folge von und 6n + 3 für die ganzzahlige Folge der Länge 6 erzeugt werden kann. Zusammenfassend ist die ganzzahlige Folge der Länge n ein Vielfaches von n, wenn n ungerade ist und n gerade ist. Es ist ersichtlich, dass ein Vielfaches von n + (n / 2) bei erzeugt werden kann.
Mit anderen Worten, wenn A gerade ist, kann es immer durch eine fortlaufende Ganzzahlzeichenfolge der Länge 2A erzeugt werden. Wenn A ungerade ist, kann es immer durch eine fortlaufende Ganzzahlzeichenfolge der Länge A oder 2A erzeugt werden. Übrigens kann aufgrund der Begrenzung des Problems die Länge erzeugt werden. Da eine fortlaufende Ganzzahlzeichenfolge von 1 und 2 nicht verwendet werden kann, ist nur 1 eine Ganzzahl, die nicht generiert werden kann.
A = int(input())
if A == 1:
print('NO')
else:
print('YES')
Wenn Sie Operation 1 nur einmal ausführen, ist sie keine Ganzzahl und stimmt nie überein. Wenn Sie sie jedoch zweimal ausführen, wird der ursprüngliche Wert wiederhergestellt. Da nur 2 verwendet werden können, sind A, B, C und D, Wenn die Ganzzahlen, aus denen E und F bestehen, nur die Reihenfolge ändern, müssen Sie Operation 2 nur einmal mit 'Ja' ausführen, andernfalls ist es 'Nein'.
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')
Was Sie wollen, ist N </ sub> C 0 </ sub> M 0 </ sup> + N </ sub> C 2 </ strong>, wenn X = 0 sub> M 2 </ sup> + ... und wenn X = 1, N </ sub> C <1> M 1 </ sup> + N </ sub> C 3 </ sub> M 3 </ sup> + ... Übrigens (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 < Aus sup> N-1 </ sup> + ... können wir berechnen, was wir aus (M + 1) N </ sup> und (M-1) N </ sup> finden können.
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