0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ABC446] ABC 446(Atcoder Beginner Contest)のA~C(A,B,C)問題をPythonで解説(復習)

0
Posted at

[ABC446] ABC 446(Atcoder Beginner Contest)のA~C(A,B,C)問題をPythonで解説(復習)

A問題

  • 文字のスライスを結合すれば良い.
  • 最初の文字は lower メソッドを使う.
  • python の文字は置換できないので注意.
A.py
"""
<方針>
- 文字のスライスを結合すれば良い.
- 最初の文字は `lower` メソッドを使う.
- `python` の文字は置換できないので注意.
"""
# 入力
S = input()

# スライス結合.
ans = "Of" + S[0].lower() + S[1:]

# 出力
print(ans)

B問題

  • 選ばれたジュースを管理する集合を持たせる se
B.py
"""
<入力>
- 選ばれたジュースを管理する集合を持たせる `se`
"""
N, M = map(int, input().split())

se = set() # 選ばれたジュースを管理

# 人をそれぞれ見る
for _ in range(N):
  L = int(input())
  X = list(map(int, input().split()))
  ans = 0 # ジュースが選ばれなかったら水になるように初期値を設定
  # ジュースを見ていく
  for x in X:
    if not (x in se):
      se.add(x)
      ans = x
      break
  
  print(ans)

C問題

方針

  • 卵の総数はそんなに大きくないので,deque を使って卵を管理する.
  • あとはシミュレーションすれば良い.

前提

  • C問題あたりで,TLEになる人は,制約条件を見る癖をつけよう.
  • AB問題では,基本的に制約条件を見ずにやっても解ける.
  • しかし,C問題以降では,制約条件を見ないと必ずTLEすると思っても良い.
  • 詳しい話は私の352回の記事C問題の解説に記したので,是非参照してほしい.
C.py
"""
<方針>
- 卵の総数はそんなに大きくないので,`deque` を使って卵を管理する.
- あとはシミュレーションすれば良い.
"""
from collections import deque

T = int(input())
for _ in range(T):
  N, D = map(int, input().split())
  A = list(map(int, input().split()))
  B = list(map(int, input().split()))
  
  q = deque() # 卵を管理する.左ほど古い.仕入れた日付を入れる.
  for i in range(N):
    a = A[i]
    b = B[i]
    
    # 朝の作業.卵を仕入れる
    for _ in range(a):
      q.append(i)
    
    # 昼の作業.卵を使う.
    for _ in range(b):
      q.popleft()
    
    # 夜の作業.卵を捨てる.
    while q:
      x = q.popleft()
      # まだ使える時,
      if(i < x+D):
        # 戻す
        q.appendleft(x)
        break
  
  # 卵の個数を確認
  print(len(q))

補足

関係するリンク(参考文献など)

筆者について

その他

  • 間違いを含んでいる可能性があります.
  • 方針と言いつつ,方針ではない感想などを書いている可能性があります.
  • A問題から解説がだんだん省略されます.
  • コードに書かれている解説の文言と,その上に書いてある解説の文言を変えている場合があります.

最後に一言

  • 健康が一番大事らしい.
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?