[PYTHON] AtCoder Beginner Contest 165 Teilnahmebericht

AtCoder Beginner Contest 165 Teilnahmebericht

Plötzlich war ich überrascht, 10 Minuten zu spät zu sein. Ich habe das Glück, dass ich die C- und D-Probleme gelöst habe. Nun, manchmal ist es gut, weil ich oft verwirrt bin, wenn ich das gelöste Problem verpasse.

ABC165A - We Love Golf

Brechen Sie in zweieinhalb Minuten durch. Huhn, das die Schleife dreht, während es denkt, dass es mit * O * (1) geschrieben werden kann.

K = int(input())
A, B = map(int, input().split())

for i in range(A, B + 1):
    if i % K == 0:
        print('OK')
        exit()
print('NG')

Nachtrag: Ich habe auch in * O * (1) geschrieben.

K = int(input())
A, B = map(int, input().split())

if (B // K) * K >= A:
    print('OK')
else:
    print('NG')

ABC165B - 1%

Es brach in 4 Minuten durch. Als ich X ≤ 10 </ sup> 18 </ sup> sah, dachte ich, dass TLE möglich ist, obwohl es ein B-Problem ist !? Mir ging es gut, also fragte ich mich, was es war.

X = int(input())

t = 100
result = 0
while t >= X:
    t += t // 100
    result += 1
print(result)

ABC165C - Many Requirements

Es brach in 23,5 Minuten durch. In dem Moment, als ich das Problem sah, wurde mein Kopf weiß, aber ich schaffte es, es zu lösen. In dem Moment, als ich AC wurde, fand ich das aktuelle Ranking erstaunlich, aber jeder löste das D-Problem zuerst und sogar bis jetzt Ich habe nicht (lacht).

Nun, ich habe mich gefragt, ob ich ein Round-Robin machen soll, aber wenn ich es mit ungültigen generiere, scheint es mit * O * (10 10 </ sup>) nutzlos zu sein. Achten Sie auf 1 ≤ M ≤ 10. , M -1 ist 0-9, kann also als Zeichenkette ausgedrückt werden. Deshalb habe ich beschlossen, alle geeigneten Zeichenketten zu generieren. Danach dachte ich, ich würde ein Round-Robin-Verfahren durchführen. TLE, aber ohne AC ..

N, M, Q = map(int, input().split())
abcd = [list(map(int, input().split())) for _ in range(Q)]

m = M - 1


def f(s):
    if len(s) == N:
        return [s]
    result = []
    if s == '':
        r = 0
    else:
        r = int(s[-1])
    for i in range(r, m + 1):
        result.extend(f(s + str(i)))
    return result


result = 0
V = f('')
for s in V:
    A = [int(c) + 1 for c in s]
    t = 0
    for a, b, c, d in abcd:
        if A[b - 1] - A[a - 1] == c:
            t += d
    result = max(result, t)
print(result)

Nachtrag: Es scheint, dass ich nicht mein Bestes geben musste, um alle Sets selbst zu generieren. Python ist großartig.

from itertools import combinations_with_replacement

N, M, Q = map(int, input().split())
abcd = [list(map(int, input().split())) for _ in range(Q)]

result = 0
for A in combinations_with_replacement(range(1, M + 1), N):
    t = 0
    for a, b, c, d in abcd:
        if A[b - 1] - A[a - 1] == c:
            t += d
    result = max(result, t)
print(result)

ABC165D - Floor Function

Durchbruch in 20 Minuten. Ich dachte, dass es zum Zeitpunkt des Anstiegs von Ax / B einen Maximalwert geben sollte. Wenn ich also die Gleichung von Ax / B = n löse, ist x = Bn / A, so dass x, das n um 1 erhöht, N ist Ich habe versucht, es zu drehen, bis es wurde. Dies ist jedoch der Fall, wenn A <B, also habe ich es für diesen Fall auf A gedreht. Als ich es mit einer unordentlichen Kombination herausbrachte, kam AC und ich war selbst überrascht. Mit anderen Worten, das Problem Ich habe nicht viel verstanden, aber ich habe es gelöst ...

In dem Moment, als ich das D-Problem löste, hatte ich einen Traum von blauer Leistung, weil ich in den 900ern war, aber es tut mir leid, dass ich das E-Problem nicht lösen konnte und mich auf den 1500. Platz zurückzog.

from math import floor

A, B, N = map(int, input().split())


def f(x):
    return floor(A * x / B) - A * floor(x / B)


result = 0
for x in range(min(A + 1, N + 1)):
    result = max(result, f(x))

if B > A:
    for i in range(10 ** 20):
        x = (i * B + A - 1) // A
        if x > N:
            break
        result = max(result, f(x))

print(result)

Nachtrag: Früher habe ich gut durchgemacht (Schweiß). Die Schwierigkeitsgrade von D- und C-Problemen sind jedoch vollständig umgeschaltet.

A, B, N = map(int, input().split())

x = min(B - 1, N)
print(A * x // B - A * (x // B))

ABC165E - Rotation Matching

Verloren. Ich wusste, dass ich den Abstand auf 1, 2, ..., M einstellen sollte, aber ich konnte nicht herausfinden, wie ich die Kombinationen packen sollte, die ihn zwischen M erfüllen.

Nachtrag: Die Bedingung ist, dass der Unterschied zwischen a und b unterschiedlich ist, aber da er kreisförmig ist, kann er auch dann gleich sein, wenn der Unterschied unterschiedlich ist (zum Beispiel (1, 4), wenn N = 4). (2, 3) scheint sich um 3 Differenz und 1 Differenz zu unterscheiden, aber da 4 neben 1 steht, sind beide 1 Differenz). Zusammenfassend lässt sich sagen, dass der Abstand 1, 2, ..., M beträgt Gut. In diesem Fall ist es einzigartig, selbst wenn es aus dem Zustand von M × 2 + 1 ≤ N zirkuliert. Als nächstes, wie man die Kombination nimmt, nimm zuerst die längste 1 und M + 1. Natürlich darin Da derjenige mit dem Abstand M-1 nicht eintritt, nehmen Sie ihn mit M + 2 und 2M + 1 daneben. Da es sich um den Abstand M-2 handelt, tritt er zwischen 1 und M + 1 ein, also nehmen Sie ihn mit 2 und M. Als nächstes kommt der Abstand M-3, also denke ich, dass es in Ordnung ist, ihn bei M + 3 und 2M zu nehmen, also teile ihn in zwei Teile und packe sie wie eine Matroschka-Puppe hinein.

N, M = map(int, input().split())

for i in range(1, M + 1):
    if i % 2 == 1:
        j = (i - 1) // 2
        print(1 + j, M + 1 - j)
    else:
        j = (i - 2) // 2
        print(M + 2 + j, 2 * M + 1 - j)

Recommended Posts

AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Beginner Contest 154 Teilnahmebericht
AtCoder Beginner Contest 166 Teilnahmebericht
AtCoder Beginner Contest 153 Teilnahmebericht
AtCoder Beginner Contest 145 Teilnahmebericht
AtCoder Beginner Contest 184 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 162 Teilnahmebericht
AtCoder Beginner Contest 157 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
AtCoder Beginner Contest 183 Teilnahmebericht
AtCoder Beginner Contest # 003 Teilnahmehinweis
AtCoder Grand Contest 041 Teilnahmebericht
AtCoder Regular Contest 105 Teilnahmebericht
AtCoder Regular Contest 104 Teilnahmebericht
Eintragsdatensatz für den ACL-Anfängerwettbewerb
Atcoder Anfängerwettbewerb 146 Teilnahme Tagebuch
Teilnahmebericht des AtCoder Chokudai Contest 005
AtCoder Grand Contest 047 Teilnahmebericht
AtCoder Anfängerwettbewerb 177
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 172
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153
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
AtCoder Anfängerwettbewerb 152 Rückblick
AtCoder Beginner Contest 160 Bewertung
AtCoder Anfängerwettbewerb 178 Bewertung
AtCoder Anfängerwettbewerb 180 Hinweis
AtCoder Anfängerwettbewerb 166 Bewertung
Teilnahmebericht zum AtCoder Library Practice Contest (Python)