[PYTHON] AtCoder Beginner Contest 165 Rapport de participation

AtCoder Beginner Contest 165 Rapport de participation

Du coup, j'ai été surpris d'avoir 10 minutes de retard. J'ai de la chance d'avoir résolu les problèmes C et D. Eh bien, c'est bien parfois parce que je suis souvent confus si je rate le problème résolu.

ABC165A - We Love Golf

Pause en deux minutes et demie Poulet qui tourne la boucle en pensant qu'on peut l'écrire avec * O * (1).

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')

Post-scriptum: J'ai également écrit en * O * (1).

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

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

ABC165B - 1%

Percer en 4 minutes. Quand j'ai vu X ≤ 10 18 </ sup>, j'ai pensé que TLE était possible même s'il s'agissait d'un problème B!? J'allais bien, alors je me demandais ce que c'était.

X = int(input())

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

ABC165C - Many Requirements

Il a éclaté en 23 minutes et demie. Au moment où j'ai vu le problème, ma tête est devenue blanche, mais j'ai réussi à le résoudre. Au moment où j'ai AC, j'ai pensé que le classement actuel était incroyable, mais tout le monde a résolu le problème D en premier et même jusqu'à présent Je ne l'ai pas fait (rires).

Eh bien, je me demandais si je devais faire un round-robin, mais si je le génère avec des invalides, cela semble inutile avec * O * (10 10 </ sup>). Faites attention à 1 ≤ M ≤ 10. , M -1 vaut 0-9, donc il peut être exprimé sous forme de chaîne de caractères, j'ai donc décidé de générer tous les jeux de chaînes de caractères appropriés. Après cela, j'ai pensé que je ferais un round robin. TLE, mais sans 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)

Postscript: Il semble que je n'ai pas eu à faire de mon mieux pour générer moi-même tous les ensembles, Python est génial.

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

Percer dans 20 minutes. Je pensais qu'il devrait y avoir une valeur maximale au moment où Ax / B augmente, donc quand je résous l'équation de Ax / B = n, x = Bn / A, donc x qui incrémente n de 1 est N J'ai essayé de le tourner jusqu'à ce qu'il devienne. Cependant, c'était quand A <B, alors je l'ai tourné vers A pour ce cas. Quand je l'ai éteint avec une combinaison désordonnée, AC est venu et j'ai été surpris moi-même. En d'autres termes, le problème Je n'ai pas beaucoup compris, mais je l'ai résolu ...

Au moment où j'ai résolu le problème D, j'ai rêvé de performances bleues parce que j'étais dans les 900, mais je suis désolé de ne pas avoir pu résoudre le problème E et je me suis replié à la 1500e place.

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)

Post-scriptum: J'avais l'habitude de bien traverser (transpiration), mais les niveaux de difficulté des problèmes D et C sont complètement inversés.

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

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

ABC165E - Rotation Matching

Perdu. Je savais que je devais régler la distance à 1, 2, ..., M, mais je ne savais pas comment emballer les combinaisons qui le satisfassent entre M.

Addendum: La condition est que la différence entre a et b soit différente, mais comme elle est circulaire, elle peut être la même même si la différence est différente (par exemple, (1, 4) quand N = 4). (2, 3) semble être différent de 3 différences et 1 différence, mais comme 4 est à côté de 1, les deux sont 1 différence.) En conclusion, si la distance est 1, 2, ..., M Bien. Dans ce cas, il sera unique même s'il circule à partir de la condition M × 2 + 1 ≤ N. Ensuite, comment prendre la combinaison, prenez d'abord le plus long 1 et M + 1. Bien sûr, à l'intérieur Puisque celui avec la distance M-1 n'entre pas, prenez-le avec M + 2 et 2M + 1 à côté. Ensuite, comme c'est la distance M-2, il entre entre 1 et M + 1, alors prenez-le avec 2 et M. Vient ensuite la distance M-3, donc je pense que c'est correct de la prendre à M + 3 et 2M, alors divisez-la en deux parties et emballez-les à l'intérieur comme une poupée Matriochka.

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 Rapport de participation
AtCoder Beginner Contest 161 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 154 Rapport de participation
AtCoder Beginner Contest 166 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 145 Rapport de participation
AtCoder Débutant Contest 184 Rapport de participation
AtCoder Beginner Contest 165 Rapport de participation
Rapport de participation au concours AtCoder Débutant 160
AtCoder Beginner Contest 169 Rapport de participation
AtCoder Beginner Contest 178 Rapport de participation
AtCoder Beginner Contest 163 Rapport de participation
AtCoder Beginner Contest 159 Rapport de participation
AtCoder Beginner Contest 164 Rapport de participation
AtCoder Beginner Contest 168 Rapport de participation
Rapport de participation au concours AtCoder Débutant 150
AtCoder Beginner Contest 158 Rapport de participation
Rapport de participation au concours AtCoder Débutant 180
AtCoder Beginner Contest 156 Rapport de participation
AtCoder Beginner Contest 162 Rapport de participation
AtCoder Débutant Contest 157 Rapport de participation
AtCoder Beginner Contest 167 Rapport de participation
AtCoder Débutant Contest 179 Rapport de participation
Concours AtCoder Débutant 182
AtCoder Beginner Contest 146 Rapport de participation
AtCoder Beginner Contest 152 Rapport de participation
AtCoder Débutant Contest 155 Rapport de participation
AtCoder Beginner Contest 174 Rapport de participation
AtCoder Beginner Contest 171 Rapport de participation
AtCoder Beginner Contest 149 Rapport de participation
AtCoder Beginner Contest 148 Rapport de participation
AtCoder Débutant Contest 170 Rapport de participation
AtCoder Débutant Contest 183 Rapport de participation
Note de participation au concours pour débutants AtCoder # 003
AtCoder Grand Contest 041 Rapport de participation
Rapport de participation au concours régulier AtCoder 105
AtCoder Regular Contest 104 Rapport de participation
Fiche d'inscription au concours ACL pour débutant
Journal de participation Atcoder Beginner Contest 146
AtCoder Chokudai Contest 005 Rapport de participation
AtCoder Grand Contest 047 Rapport de participation
Concours AtCoder Débutant 177
Concours AtCoder Débutant 179
Concours AtCoder Débutant 172
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
Rapport de participation au concours de programmation AtCoder HHKB 2020
Rapport de participation au concours de programmation AtCoder Acing 2020
Rapport de participation au concours de programmation AtCoder Keyence 2020
Rapport de participation au concours de programmation AtCoder Panasonic 2020
Critique du concours AtCoder Beginner Contest 152
Critique du concours AtCoder Débutant 160
Critique du concours AtCoder Débutant 178
Concours AtCoder Débutant 180 Remarque
Critique du concours AtCoder pour débutant 166
Rapport de participation au concours d'entraînement de la bibliothèque AtCoder (Python)