0.はじめに
D問題まで解けてレート+37。
久々に爽快感のある回答でした。
1.A - Edge Checker 2
しょっぱなにしては難しい問題・・。
頭が回らず、愚直に図を見ながら
aが1かつ、bが2or3の時Yes その他はNo
aが2かつ、bが4or5の時Yes その他はNo・・・・
と、書いているうちに法則性に気づき
if(b==2*a or b==2*a+1):
print("Yes")
else:
print("No")
に、行きつきました。
まぁ、まずはやってみるというのも大事ですね。
https://atcoder.jp/contests/abc285/submissions/38046872
2.B - Longest Uncommon Prefix
最初見たときは全く意味が分からず、ほんとにB問題??と質問しそうになりました。
いったんCを解いた後戻ってきて眺め返してみたら、解法が見えてきました。
まずはやってみないというのも大事ですね・・・。
考え方
1)何個後の文字を判定するかの変数i(1~N-1)を用意しループ_1
2)ループ_1ごとに1文字目から、N-i文字目までチェックする変数jと回答用変数ansを
用意しループ_2
3)ループ_2ごとにS[j]とS[j+i]を比較し、同じならans+=1、ちがったらブレイク
4)ループ_2を抜けたら、ansを出力
iとjの関係性をつかむのにてこずりました。(わたしだけ?)
https://atcoder.jp/contests/abc285/submissions/38060955
3.C - abc285_brutmhyhiizp
アルファベットを26進数と置き換えて計算すれば一発だなと思い
そのようなPythonプログラムをググる。
ドンピシャなソースが見つかり解答・・・。
大体ヒントになりそうなページを見つけて参考に回答するのですが
そのものずばりなソースを見つけてしまい、そのまま使い反省・・・。
https://atcoder.jp/contests/abc285/submissions/38057032
4.D - Change Usernames
例題を見て
A→B
B→C
C→A
といった感じのループが発生していなければOKと判断。
ついでに、1回調べたループは調べないよう調べたフラグを付けたところ
そのせいでうまくいかなくなってしまいました。
その結果、ループをチェックする回毎に
その回で調べたかのみをチェックすることに変更
結果として、TLEは出ずにAC頂けました。
再帰関数深度を増やすオプションは必要だったので、
これはもう次から必須にしてしまおうかな・・・。
https://atcoder.jp/contests/abc285/submissions/38068722
以上