[PYTHON] AtCoderBeginnerContest175 Review & Summary (premier semestre)

AtCoder ABC175 Ceci est un résumé des problèmes du concours AtCoder Beginner Contest 175, qui s'est déroulé le samedi 15/08/2020, dans l'ordre du problème A, en tenant compte de la considération. La première moitié traite des problèmes jusqu'à ABC. 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 saison des pluies

Énoncé du problème Il y a un record de la météo dans la ville d'AtCoder pour une journée consécutive de 3 $. L'historique météo est représenté par la chaîne de longueur $ 3 $ $ S $, et le temps $ i (1 \ leqq i \ leqq 3) $ day est ensoleillé lorsque la lettre $ i $ est "S", "R" «Il pleuvait à ce moment-là. Trouvez le nombre maximum de jours de pluie consécutifs.

Comme il est écrit dans le commentaire, il n'y a que 8 façons pendant 3 jours, vous pouvez donc le passer si vous l'écrivez séparément. Si vous faites attention à l'ordre des conditions, vous pouvez le résoudre dans les cas suivants.

abc175a.py


n = input()
if "RRR" in n:
    print(3)
elif "RR" in n:
    print(2)
elif "R" in n:
    print(1)
else:
    print(0)

Problème B faisant un triangle

Énoncé du problème Il y a des bâtons $ N $ numérotés $ 1, ⋯, N $. La longueur de la barre $ (i (1 \ leqq i \ leqq N) $ est $ L_i $. Combien de ces tiges de 3 $ de différentes longueurs peuvent être utilisées pour faire un triangle? En d'autres termes, trouvez le nombre de paires d'entiers $ 3 $ $ 1 \ leqq i <j <k \ leqq N $ qui satisfont aux deux conditions $ 2 $ suivantes. ・ $ L_i, L_j, L_k $ sont tous différents ・ Il y a un triangle dont la longueur de côté est $ L_i, L_j, L_k $.

Puisque la condition que tous les côtés sont différents est simple, en ce qui concerne la condition qu'un triangle tient, si la longueur de $ 3 $ côté est $ L_i <L_j <L_k $, le triangle existe lorsque $ L_i + L_j> L_k $. En triant d'abord les bâtons $ N $, lorsque vous sélectionnez 3 $ à partir de $ N $, celui le plus à droite des 3 $ sélectionnés sera la valeur la plus élevée. Puisque $ N $ est de 100 ou moins, vous pouvez vérifier toutes les combinaisons à temps.

abc175b.py


n = int(input())
l_list = list(map(int, input().split()))
l_list.sort()
count = 0
for i in range(0, n - 2):
    for j in range(i + 1, n - 1):
        for k in range(j + 1, n):
            a = l_list[i]
            b = l_list[j]
            c = l_list[k]
            if a == b or b == c or c == a:
                continue
            if a + b > c:
                count += 1
            else:
                break
print(count)

Problème C Marcher Takahashi

Énoncé du problème Takahashi, qui vit sur quelques lignes droites, est maintenant aux coordonnées $ X $. A partir de maintenant, Takahashi a l'intention de répéter l'acte de déplacer $ D $ dans le sens positif ou négatif des coordonnées exactement $ K $ fois. Plus précisément, vous pouvez passer des coordonnées $ x $ à $ x + D $ ou $ x − D $ avec un mouvement de $ 1 $. M. Takahashi veut se déplacer pour que la valeur absolue des coordonnées après avoir déplacé seulement $ K $ fois soit le minimum. Trouvez la valeur minimale possible comme valeur absolue des coordonnées après avoir déplacé $ K $ fois.

Au départ, il est dans la coordonnée $ X $, mais comme la valeur minimale à obtenir est la valeur absolue de la coordonnée, les réponses de $ X $ et $ -X $ correspondent. Considérant le cas de $ 0 \ leqq X $, s'il n'y a pas de limite sur le nombre de mouvements $ K $, le reste de $ X $ divisé par $ D $ ou $ T1 $ moins $ D $ $ T2 Soit $ est la réponse. (Je veux réduire la valeur absolue des coordonnées, il est donc préférable d'aller et venir près de l'origine) Tout d'abord, il est déterminé si $ T1 $ peut être atteint, et s'il ne peut pas être atteint, la réponse est $ X $ moins le nombre de coups x $ D $. Si vous pouvez atteindre $ T1 $, vous devez déplacer $ K $ fois, alors calculez le nombre de mouvements restant à partir du nombre de mouvements jusqu'à présent, et si le nombre de mouvements restant est pair ou impair, $ T1 $ $ T2 $ est décidé. Notez la sortie car $ T2 $ est négatif.

abc175c.py


x, k, d = map(int, input().split())
if x < 0:
    x *= -1
t1 = x % d
t2 = t1 - d
n = (x - t1) // d
if k < n:
    print(x - k * d)
else:
    n = k - n
    if n % 2 == 0:
        print(t1)
    else:
        print(-t2)

C'est la fin du premier semestre. Je suis en vacances d'été, mais je suis occupé à rédiger des réponses parce que l'article est accepté sous condition, alors j'aimerais l'écrire quand j'aurai le temps dans la seconde moitié. Merci d'avoir lu jusqu'au bout.

Recommended Posts

AtCoderBeginnerContest175 Review & Summary (premier semestre)
AtCoderBeginnerContest164 Review & Summary (premier semestre)
AtCoderBeginnerContest169 Review & Summary (premier semestre)
AtCoderBeginnerContest174 Review & Summary (premier semestre)
AtCoderBeginnerContest173 Review & Summary (First Half)
AtCoderBeginnerContest165 Review & Summary (premier semestre)
AtCoderBeginnerContest170 Review & Summary (premier semestre)
AtCoderBeginnerContest167 Review & Summary (premier semestre)
AtCoderBeginnerContest177 Review & Résumé (premier semestre)
AtCoderBeginnerContest168 Review & Summary (premier semestre)
AtCoderBeginnerContest178 Review & Summary (premier semestre)
AtCoderBeginnerContest171 Review & Summary (premier semestre)
AtCoderBeginnerContest166 Review & Summary (premier semestre)
AtCoderBeginnerContest161 Review & Summary (premier semestre)
AtCoderBeginnerContest172 Review & Summary (premier semestre)
AtCoderBeginnerContest176 Review & Summary (premier semestre)
AtCoderBeginnerContest178 Review & Summary (second semestre)
AtCoderBeginnerContest161 Review & Summary (second semestre)
AtCoderBeginnerContest164 Review & Summary (second semestre)
AtCoderBeginnerContest176 Review & Summary (second semestre)
AtCoderBeginnerContest168 Review & Summary (second semestre)
AtCoderBeginnerContest169 Review & Summary (second semestre)
AtCoderBeginnerContest166 Review & Summary (second semestre)
AtCoderBeginnerContest171 Review & Summary (second semestre)
AtCoderBeginnerContest174 Review & Summary (second semestre)
AtCoderBeginnerContest173 Review & Summary (second semestre)
AtCoderBeginnerContest177 Review & Summary (second semestre)
AtCoderBeginnerContest180 Examen et résumé
AtCoderBeginnerContest181 Examen et résumé
AtCoderBeginnerContest182 Examen et résumé
AtCoderBeginnerContest183 Review & Résumé
AtCoderBeginnerContest179 Review & Résumé
Résumé du didacticiel Django Girls Première moitié
AtCoder Revue des questions précédentes (première moitié de 12 / 8,9)