AtCoder参加記録No.3ーABC215


ABC215

今回参加したABC215についての参加記録

2021年8月21日(土)のAtCoder Beginner Contest 215でした。

結果

A,B問題を正解
レート:28→42 (+14) Highest!
順位:6766/ 8537
時間: A問題25:54 B問題32:05
パフォーマンス:137

詳細

A問題

問題

提出コード(AC)

A問題.py
N = input()
if N =='Hello,World!':
  print('AC')
else:
  print('WA')

提出コード詳細

B問題

問題

提出コード(AC)

B問題_1.py
N = int(input())
A =0
for i in range(1000):
  if 2**i<=N:
    A=i
  else:
    A=A
print(A)

詳細

C問題

問題

解法が全く思いつかずに未回答

D問題

問題

解法は思いついたが計算量O(N*M*logN)以上であるためでTLE
提出1回目(TLE)

D問題_1.py
N,M =map(int,input().split())
Z = list(map(int,input().split()))
import math
A=[]

for i in range(1,M+1):
  ok = True
  for x in range(N):
    if math.gcd(Z[x],i)==1:
      ok=ok
    else:
      ok=False
  if ok:
    A.append(i)
print(len(A))
for i in range(len(A)):
  print(A[i])

詳細

提出2回目(WA)

D問題_2.py
N,M =map(int,input().split())
Z = list(map(int,input().split()))
import math
A=[]

for i in range(1,M+1):
  ok = True
  for x in range(N):
    if math.gcd(Z[x],i)==1:
      ok=ok
    else:
      break
  if ok:
    A.append(i)
print(len(A))
for i in range(len(A)):
  print(A[i])

詳細

提出3回目(TLE)

D問題_3.py
N,M =map(int,input().split())
Z = list(map(int,input().split()))
import math
A=[]

for i in range(1,M+1):
  ok = True
  for x in range(N):
    if math.gcd(Z[x],i)==1:
      ok=ok
    else:
      ok=False
      break
  if ok:
    A.append(i)
print(len(A))
for i in range(len(A)):
  print(A[i])

詳細

振り返り、反省

今回もバイト後の参加のためスタートが遅れてしまった。
A,B問題は普通に解けた。

A,B問題については特になし

C問題についてはstr型を使った問題を解いた経験が少ないため解法が分からなかった。
経験を積んでC問題が解けるように勉強していきたい。

D問題は提出前から計算量が多いことがなんとなくわかっていたがそのまま提出。

案の定TLEで正解ならず。2206secでTLEであったためその後悪あがきしたが、実行時間は変わらず終了。

感想

今回は凡ミスがなく良かった。
コンテスト以外にも問題をといて経験を積みたい。
現在アルゴリズム実技検定公式テキストを用いて勉強中なのでそれが終わったら問題をたくさん解いていきたい。