[PYTHON] AtCoder Judge System Update Testwettbewerb 202004 Teilnahmebericht

AtCoder Judge System Update Testwettbewerb 202004 Teilnahmebericht

Es ist die erste vollständige Fertigstellung, und das Ranking liegt auch bei den besten 9%. Warum wird es nicht bewertet? (Bang Bang Desk).

A - Walking Takahashi

Durchbruch in 2 Minuten. Wenn die Sonne bereits aufgegangen ist, antwortet die aktuelle Position. Wenn die aktuelle Position kleiner als L ist, antwortet L und wenn die aktuelle Position R überschreitet, antwortet R.

S, L, R = map(int, input().split())

if L <= S <= R:
    print(S)
elif S < L:
    print(L)
elif S > R:
    print(R)

B - Picking Balls

Brechen Sie in 6 Minuten durch. Sortieren Sie R und B, zeigen Sie R in aufsteigender Reihenfolge an und zeigen Sie B in aufsteigender Reihenfolge an. Natürlich sortieren Sie einfach in aufsteigender Reihenfolge.

N = int(input())

R = []
B = []
for _ in range(N):
    X, C = input().split()
    if C == 'R':
        R.append(int(X))
    elif C == 'B':
        B.append(int(X))

R.sort()
B.sort()
if R:
    print('\n'.join(str(r) for r in R))
if B:
    print('\n'.join(str(b) for b in B))

C - Numbering Blocks

Brechen Sie in 12 Minuten durch. N ist höchstens 9, also müssen Sie nur eine Runde machen. Itertools.permutations Ich liebe dich.

from itertools import permutations

a1, a2, a3 = map(int, input().split())
a = [a1, a2, a3]

N = a1 + a2 + a3
result = 0
for p in permutations(range(1, N + 1)):
    X = [p[:a1], p[a1:a1 + a2], p[a1 + a2:]]
    flag = True
    for i in range(3):
        for j in range(1, a[i]):
            if X[i][j] <= X[i][j - 1]:
                flag = False
    for i in range(1, 3):
        for j in range(a[i]):
            if X[i][j] <= X[i - 1][j]:
                flag = False
    if flag:
        result += 1
print(result)

D - Calculating GCD

Brechen Sie in 23,5 Minuten durch. Wenn Sie Naive machen, nehmen Sie TLE. X mit * O * (10 </ sup> 10 </ sup>), um alle A und GCD zu nehmen, nehmen Sie alle GCDs von A und GCDs von X. Gleich wie. Wenn X nicht 1 wird, wird es * O * (10 5 </ sup>) und es wird gelöscht. Dies ist die Anzahl der Operationen, wenn X 1 wird, aber die GCD von A wird in der richtigen Reihenfolge genommen. Nur die geänderten Teile sind Kandidaten, überprüfen Sie also nur die geänderten Teile. Ich weiß nicht, wie stark die Bestellung sinken wird, aber intuitiv sollte sie stark sinken. Wenn Sie sie also einreichen, ist sie sicher.

from math import gcd

N, Q = map(int, input().split())
A = list(map(int, input().split()))
S = list(map(int, input().split()))

gcd_a = A[0]
a = [(1, A[0])]
for i in range(1, N):
    t = gcd(gcd_a, A[i])
    if t != gcd_a:
        gcd_a = t
        a.append((i + 1, gcd_a))

for i in range(Q):
    X = S[i]
    t = gcd(gcd_a, X)
    if t != 1:
        print(t)
    else:
        for j, g in a:
            if gcd(X, g) != 1:
                continue
            print(j)
            break

Nachtrag: Es scheint, dass jeder es löst, also habe ich versucht, es sogar mit Nibutan w zu lösen

from math import gcd

N, Q = map(int, input().split())
A = list(map(int, input().split()))
S = list(map(int, input().split()))

for i in range(N - 1):
    A[i + 1] = gcd(A[i + 1], A[i])

for i in range(Q):
    X = S[i]
    t = gcd(A[-1], X)
    if t != 1:
        print(t)
    else:
        ng = -1
        ok = N - 1
        while ok - ng > 1:
            m = (ok + ng) // 2
            if gcd(X, A[m]) == 1:
                ok = m
            else:
                ng = m
        print(ok + 1)

Recommended Posts

AtCoder Judge System Update Testwettbewerb 202004 Teilnahmebericht
AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 151 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Grand Contest 041 Teilnahmebericht
AtCoder Grand Contest 040 Teilnahmebericht
AtCoder Beginner Contest 153 Teilnahmebericht
AtCoder Beginner Contest 165 Teilnahmebericht
AtCoder Beginner Contest 160 Teilnahmebericht
AtCoder Beginner Contest 169 Teilnahmebericht
AtCoder Beginner Contest 178 Teilnahmebericht
AtCoder Beginner Contest 163 Teilnahmebericht
AtCoder Beginner Contest 159 Teilnahmebericht
AtCoder Beginner Contest 164 Teilnahmebericht
AtCoder Beginner Contest 168 Teilnahmebericht
AtCoder Beginner Contest 150 Teilnahmebericht
AtCoder Beginner Contest 158 Teilnahmebericht
AtCoder Beginner Contest 180 Teilnahmebericht
AtCoder Beginner Contest 156 Teilnahmebericht
AtCoder Beginner Contest 167 Teilnahmebericht
AtCoder Beginner Contest 179 Teilnahmebericht
AtCoder Anfängerwettbewerb 182
AtCoder Anfängerwettbewerb 146 Teilnahmebericht
AtCoder Beginner Contest 152 Teilnahmebericht
AtCoder Beginner Contest 155 Teilnahmebericht
AtCoder Beginner Contest 174 Teilnahmebericht
AtCoder Beginner Contest 171 Teilnahmebericht
AtCoder Beginner Contest 149 Teilnahmebericht
AtCoder Anfängerwettbewerb 148 Teilnahmebericht
AtCoder Beginner Contest 170 Teilnahmebericht
Teilnahmebericht des AtCoder Chokudai Contest 005
AtCoder Grand Contest 047 Teilnahmebericht
AtCoder Beginner Contest 183 Teilnahmebericht
Teilnahmebericht des AtCoder HHKB Programmierwettbewerbs 2020
Teilnahmebericht des AtCoder Acing Programming Contest 2020
Teilnahmebericht des AtCoder Keyence Programming Contest 2020
Teilnahmebericht des AtCoder Panasonic Programming Contest 2020
Teilnahmebericht zum AtCoder Library Practice Contest (Python)
AtCoder 3. Algorithmus Praktischer Test Teilnahmebericht
AtCoder 2. Algorithmus Praktischer Test Virtueller Teilnahmebericht
Eintragsdatensatz für den ACL-Anfängerwettbewerb
Atcoder Anfängerwettbewerb 146 Teilnahme Tagebuch
Teilnahmebericht des Programmierwettbewerbs 2020 der AtCoder Hitachi, Ltd.
abc154 teilnahmebericht
abc155 teilnahmebericht
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153