【AtCoder6週目】競プロ初心者が6ヶ月で水色コーダー目指す学習記

Atcoderでもっと多くの問題を解きたい!と言うことで学習していきます。

期間は6ヶ月とし、水色コーダーを目指します。

筆者の学習歴

学習歴はこんな感じです。

まだまだ入門と言う感じですね。

筆者の競技プログラミング歴

・利用言語はPython3

・Pythonの利用は業務で少し

・学習は「みんなのPython」を読んだくらい

・ABCコンテストには数回参加した(解けるのは1〜2問)

競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。

今日が2022年4月23日(土)で、9月20日までの半年の期間で学習を進めます。

毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。

今週学習したこと

今週4月17日(日)〜4月23日(土)は、DPの学習をしていました。

まず、基本の確認でAtcoder Beginners Selection10問を解きました。

次に、競プロ典型90問の★2問題を解きました。

競プロ典型90問は、Beginners Selectionの次に解く問題としておすすめです!

学習内容

ABC Beginners Selection

競プロ典型90問(★2問題だけ)

次の目標

茶色に昇級する。

茶色昇級のため、目標を整理しました。

学習内容

・A・B問題を高速で解く(理想10分以内)

・C・D問題をどちらか解く

私は今、A・B問題を解くのに20分前後かかっています。

これを10分以内で解くだけでも、順位は1,000以上アップが期待できます。

今週のABC

ABCに参加してきました。

今まで使っていたアカウントのパスワードがわからなくなってしまったので、アカウントを作り直しています。

abc249

結果はこんな感じでした。

abc249

ABC結果

AC:2問

パフォーマンス:270

レーティング:0→13

段級位:15級

結果

A問題

Jogging

解くのに時間がかかってしまいました。(所要15分)

a,b,c,d,e,f,x = map(int, input().split())
distA=0
distB=0
timeA=0
timeB=0

timeA=x//(a+c)*(a*b)
difA=x-x//(a+c)*(a+c)

if difA>a:
    distA=timeA+a*b
else:
    distA=timeA+difA*b

timeB=x//(d+f)*(d*e)
difB=x-x//(d+f)*(d+f)

if difB>d:
    distB=timeB+d*e
else:
    distB=timeB+difB*e

#print(distA)
#print(distB)
if distA > distB:
    print('Takahashi')
elif distA == distB:
    print('Draw')  
else:
    print('Aoki')
B問題

Perfect String

解くのに時間がかかってしまいました。(所要20分)

ans=True
s=input()
if s.islower():
    ans=False
if s.isupper():
    ans=False
a=set(s)
if len(s) != len(a):
    ans=False

if ans:
    print('Yes')
else:
    print('No') 
C問題

Just K

全通り探索(bit演算)の発想が浮かばずACならず

感想

ABC249では、C問題のbit探索、D問題の範囲限定が解けませんでした。

来週の目標をC、D問題として、bti探索問題を練習します。

来週学習すること

C、D問題以降も勝負できる様にするため、まずはbit演算を練習します。

ABCの過去の問題も少しずつ解き進めたいですね。

Python bit演算超入門

【AtCoder】ビット全探索~ 問題まとめました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です