1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ABC285回答メモ

Last updated at Posted at 2023-01-16

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

以上

1
1
1

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?