[PYTHON] AtCoderBeginnerContest179 Review & Résumé

AtCoder ABC179 Ceci est un résumé des problèmes de AtCoder Beginner Contest 179, qui s'est tenu le samedi 19/09/2020, dans l'ordre du problème A, en tenant compte de la considération. (Je n'ai pas eu le temps, donc j'ajouterai plus de pensées quand j'aurai le temps) Le problème est cité, mais veuillez consulter la page du concours pour plus de détails. Cliquez ici pour la page du concours Commentaire officiel PDF

Problème une forme plurielle

Énoncé du problème Dans le royaume d'AtCoder, la langue Takahashi, qui utilise des lettres minuscules, est utilisée. En takahashi, les formes plurielles de nomenclature sont épelées selon les règles suivantes. ・ Si la fin de la forme singulière est autre que "s", ajoutez "s" à la fin de la forme singulière ・ Si la forme singulière se termine par "s", ajoutez "es" à la fin de la forme singulière Étant donné la forme singulière $ S $ de la nomenclature Takahashi, afficher la forme plurielle.

abc179a.py


n = input()
if n[-1] == "s":
    print(n + "es")
else:
    print(n + "s")

Problème B Aller en prison

Énoncé du problème M. Takahashi a exécuté l'action de "lancer des dés de 2 $" fois $ N $. Le $ i $ roll est $ D_ {i, 1}, D_ {i, 2} $. Déterminez si vous avez eu des yeux Zoro plus de 3 $ d'affilée. Plus précisément, $ D_ {i, 1} = D_ {i, 2} $ et $ D_ {i + 1,1} = D_ {i + 1,2} $ et $ D_ {i + 2,1} Déterminez s'il y a au moins un $ i $ qui satisfait = D_ {i + 2,2} $.

abc179b.py


n = int(input())
check_list = []
for i in range(n):
    d1, d2 = map(int, input().split())
    if d1 == d2:
        check_list.append(1)
    else:
        check_list.append(0)
flag = 0
for i in range(n - 2):
    if sum(check_list[i:(i+3)]) == 3:
        flag = 1
        break
if flag:
    print("Yes")
else:
    print("No")

Problème C A x B + C

Énoncé du problème Étant donné un entier positif $ N $. Combien de paires d'entiers positifs $ (A, B, C) $ satisfont $ A × B + C = N $?

abc179c.py


n = int(input())
count = 0
for a in range(1, n):
    count += (n - 0.5) // a
print(int(count))
print(count)

Problème D sautant Tak

Énoncé du problème Il y a une ligne de carrés $ N $, qui sont numérotés $ 1,2,…, N $ dans l'ordre à partir de la gauche. M. Takahashi, qui habite ce carré, est actuellement dans le carré $ 1 $ et tente de se rendre au carré $ N $ en répétant le mouvement par la méthode décrite plus loin. Étant donné un entier $ K $ inférieur ou égal à $ 10 $ et $ K $ intervalle $ [L_1, R_1], [L_2, R_2],…, [L_K, R_K] $ qui n'ont pas de parties communes, ces intervalles Soit l'ensemble somme de $ S $. Cependant, l'intervalle $ [l, r] $ représente un ensemble d'entiers supérieurs ou égaux à $ l $ et inférieurs ou égaux à $ r $. ・ Lorsque vous êtes dans la masse $ i $, sélectionnez $ 1 $ à partir de $ S $ (appelons-le $ d $) et passez à la masse $ i + d $. Cependant, ne vous déplacez pas en dehors du carré. Pour Takahashi, trouvez le reste du nombre de façons d'atteindre la masse $ N $ divisé par 998244353 $.

abc179d.py


n, k = map(int, input().split())
s_list = []
a_list = [0] * (n + 1)
b_list = [0] * (n + 1)
a_list[1] = 1
b_list[1] = 1
for i in range(k):
    l, r = map(int, input().split())
    s_list.append([l, r + 1])
for i in range(2, n + 1):
    for l, r in s_list:
        t2 = max(0, i - l)
        t1 = max(0, i - r)
        a_list[i] += b_list[t2] - b_list[t1]
    b_list[i] = (b_list[i - 1] + a_list[i]) % 998244353
print(a_list[n] % 998244353)

E problème Somme de séquence

Énoncé du problème Le reste de $ x $ divisé par $ m $ est exprimé en $ f (x, m) $. Soit $ A $ une suite de nombres définie par la valeur initiale $ A_1 = X $ et l'expression graduelle $ A_ {n + 1} = f (A_n ^ 2, M) $. Trouvez $ \ sum_ {i = 1} ^ {N} A_i $.

abc179e.py


n, x, m = map(int, input().split())
x_set = set()
x_list = []
for i in range(n):
    if x not in x_set:
        x_set.add(x)
        x_list.append(x)
    else:
        break
    x = x**2 % m
total = 0
start = n
for i in range(n):
    if x_list[i] == x:
        start = i
        break
    else:
        total += x_list[i]
if start != n:
    m = len(x_list) - start
    k = (n - start) // m
    total += k * sum(x_list[start:])
    for i in range(0, n - k * m - start):
        total += x_list[start + i]
print(total)

Recommended Posts

AtCoderBeginnerContest180 Examen et résumé
AtCoderBeginnerContest181 Examen et résumé
AtCoderBeginnerContest182 Examen et résumé
AtCoderBeginnerContest183 Review & Résumé
AtCoderBeginnerContest179 Review & Résumé
AtCoderBeginnerContest178 Review & Summary (second semestre)
AtCoderBeginnerContest175 Review & Summary (premier semestre)
AtCoderBeginnerContest161 Review & Summary (second semestre)
AtCoderBeginnerContest164 Review & Summary (second semestre)
AtCoderBeginnerContest164 Review & Summary (premier semestre)
AtCoderBeginnerContest169 Review & Summary (premier semestre)
AtCoderBeginnerContest176 Review & Summary (second semestre)
AtCoderBeginnerContest174 Review & Summary (premier semestre)
AtCoderBeginnerContest173 Review & Summary (First Half)
AtCoderBeginnerContest168 Review & Summary (second semestre)
AtCoderBeginnerContest169 Review & Summary (second semestre)
AtCoderBeginnerContest165 Review & Summary (premier semestre)
AtCoderBeginnerContest170 Review & Summary (premier semestre)
AtCoderBeginnerContest167 Review & Summary (premier semestre)
AtCoderBeginnerContest166 Review & Summary (second semestre)
AtCoderBeginnerContest177 Review & Résumé (premier semestre)
AtCoderBeginnerContest171 Review & Summary (second semestre)
AtCoderBeginnerContest168 Review & Summary (premier semestre)
AtCoderBeginnerContest174 Review & Summary (second semestre)
AtCoderBeginnerContest178 Review & Summary (premier semestre)
AtCoderBeginnerContest171 Review & Summary (premier semestre)
AtCoderBeginnerContest166 Review & Summary (premier semestre)
AtCoderBeginnerContest161 Review & Summary (premier semestre)
AtCoderBeginnerContest173 Review & Summary (second semestre)
AtCoderBeginnerContest172 Review & Summary (premier semestre)
AtCoderBeginnerContest177 Review & Summary (second semestre)
AtCoderBeginnerContest176 Review & Summary (premier semestre)
Résumé Python
Résumé de python-pptx
Résumé Linux
Résumé Python
Résumé de Django
résumé pyenv
Résumé de la chaîne de caractères 1
résumé pytest
Résumé matplotlib
Examen des fonctions