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の次に解く問題としておすすめです!
・競プロ典型90問(★2問題だけ)
次の目標
茶色に昇級する。
茶色昇級のため、目標を整理しました。
・A・B問題を高速で解く(理想10分以内)
・C・D問題をどちらか解く
私は今、A・B問題を解くのに20分前後かかっています。
これを10分以内で解くだけでも、順位は1,000以上アップが期待できます。
今週のABC
ABCに参加してきました。
今まで使っていたアカウントのパスワードがわからなくなってしまったので、アカウントを作り直しています。
結果はこんな感じでした。
AC:2問
パフォーマンス:270
レーティング:0→13
段級位:15級
結果
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')
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')
Just K
全通り探索(bit演算)の発想が浮かばずACならず
感想
ABC249では、C問題のbit探索、D問題の範囲限定が解けませんでした。
来週の目標をC、D問題として、bti探索問題を練習します。
来週学習すること
C、D問題以降も勝負できる様にするため、まずはbit演算を練習します。
ABCの過去の問題も少しずつ解き進めたいですね。