Modèle AtCoder ABC 179 Python (A ~ E)

Résumé

Seuls A et B ont été résolus. Les performances ont diminué récemment.

problème

https://atcoder.jp/contests/abc179

A. Plural Form image.png

Répondre

S = input()

if S[-1] == 's':
    answer = S + 'es'
else:
    answer = S + 's'

print(answer)


Écrivez en fonction de l'énoncé du problème.

B. Go to Jail image.png

Répondre

N = int(input())
D = [tuple(map(int, input().split())) for _ in range(N)]

answer = 'No'

count = 0
for i in range(N):
    if D[i][0] != D[i][1]:
        count = 0
    else:
        count += 1
    
    if count == 3:
        answer = 'Yes'
        break

print(answer)

Il détermine l'alignement et renvoie Oui lorsque` `` compte atteint `` 3```.

C. A x B + C image.png

Répondre

N = int(input())

answer = 0
for a in range(1, N):
    answer += (N-1) // a

print(answer)

Compte tenu des restrictions, il semble que la boucle for ne puisse être activée qu'une seule fois. a * b + c = nTransformera * b = n - cPuisa * b On peut appeler cela le problème du comptage du nombre de combinaisons de.

D. Leaping Tak image.png

Répondre

MOD = 998244353
N, K = map(int, input().split()) #N est le nombre de carrés, K est le nombre de sections(K est égal ou inférieur à 10)
kukan = [tuple(map(int, input().split())) for _ in range(K)]

dp = [0] * (N+1)
dp[1] = 1

sumdp = [0] * (N+1)
sumdp[1] = 1

for i in range(2, N+1):
    for l, r in kukan:
        li = max(i - l, 0)
        ri = max(i - r - 1, 0)

        dp[i] += sumdp[li] - sumdp[ri]
        dp[i] %= MOD

    sumdp[i] = sumdp[i-1] + dp[i]

print(dp[N])

Normalement, prendre dp n'est pas dans le temps, alors utilisez `` dp et la somme cumulée sumdp```.

E. Sequence Sum image.png

Répondre

N, X, M = map(int, input().split())
count_memo = [-1] * 10**6 #Nombre de notes
num_memo = [0] #Une note. 1 index. 

a = X
count = 1
count_memo[a] = count
num_memo.append(a)
for i in range(1, N):
    a = a**2 % M
    if count_memo[a] == -1:
        count += 1
        count_memo[a] = count
        num_memo.append(a)
    else:
        break

if count == N: #Total si terminé avant d'entrer dans le cycle
    answer = sum(num_memo)
else:
    #Nombre et total jusqu'à l'entrée dans le cycle
    count_before_cycle = count_memo[a] - 1
    sum_before_cycle = sum(num_memo[:count_before_cycle+1])
    #Nombre et total de 1 cycle
    count_cycle = count - count_before_cycle
    sum_cycle = sum(num_memo[count_before_cycle+1:])
    #Nombre et total des cycles restants
    cycle_count = (N - count) // count_cycle
    sum_after_cycle = sum_cycle * cycle_count
    #Trop et total
    remain_count =  (N - count) % count_cycle
    sum_remain = sum(num_memo[count_before_cycle+1:count_before_cycle+1 + remain_count])

    answer = sum_before_cycle + sum_cycle + sum_after_cycle + sum_remain

print(answer)

aEntre dans le cycle quelque part. Donc,

  1. Avant d'entrer dans le cycle
  2. Cycle
  3. Répéter le cycle
  4. Nombre supplémentaire de fois se terminant au milieu du cycle Divisez en 4 façons et ajoutez-les ensemble.

Recommended Posts

Modèle AtCoder ABC 179 Python (A ~ E)
AtCoder ABC 177 Python (A ~ E)
AtCoder ABC 178 Python (A ~ E)
AtCoder ABC 176 Python (A ~ E)
AtCoder ABC 182 Python (A ~ D)
AtCoder ABC 174 Python
Résoudre Atcoder ABC176 (A, B, C, E) en Python
AtCoder ABC 175 Python
[AtCoder] Résoudre ABC1 ~ 100 Un problème avec Python
Résoudre AtCoder ABC168 avec python (A ~ D)
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Défiez AtCoder (ABC) 164 avec Python! Un problème ~ C
Résolvez AtCoder ABC166 avec python
Atcoder ABC164 A-C en Python
Résoudre ABC176 E en Python
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python
Examen de atcoder ABC158, jusqu'à la question E (Python)
Résoudre ABC163 A ~ C avec Python
[Explication AtCoder] Contrôle ABC180 Problèmes A, B, C avec Python!
Explication ABC127 A, B, C (python)
atCoder 173 Python
ABC166 en Python A ~ C problème
Résoudre ABC168 A ~ C avec Python
[Explication AtCoder] Contrôle ABC158 Problèmes A, B, C avec Python!
[Python] Maintenant un codeur marron ~ [AtCoder]
Résolution avec Ruby et Python AtCoder ABC153 E Méthode de planification dynamique
AtCoder ABC176
Résolu AtCoder ABC 114 C-755 avec Python3
Résoudre ABC162 A ~ C avec Python
Résoudre ABC167 A ~ C avec Python
ABC128 Commentaire A, B, C (python)
Résoudre ABC158 A ~ C avec Python
Explication ABC126 A, B, C (python)
Résoudre ABC037 A ~ C avec Python
AtCoder ABC177
AtCoder ABC168 Une expression de cas résolue en Ruby et Python
[Explication AtCoder] Contrôle ABC164 Problèmes A, B, C avec Python!
[Explication AtCoder] Contrôle ABC168 Problèmes A, B, C avec Python!
[Python] Maintenant un codeur vert ~ [AtCoder]
Résoudre ABC175 A, B, C avec Python
[Python] [Explication] Concours DP typique d'AtCoder: un concours
Mémo Atcoder débutant Python @ Keyence 2020, problème ABC
AtCoderBeginnerContest154 Mémo de participation (Python, problème A ~ E)
Résoudre ABC165 A, B, D avec Python
Débutant ABC154 (Python)
Débutant ABC156 (Python)
[Explication AtCoder] Contrôlez les problèmes A, B, C d'ABC182 avec Python!
Débutant ABC155 (Python)
modèle argparse python
Débutant ABC157 (Python)