0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0.はじめに

 前回Dも解けたのでこの調子で行けちゃうんじゃないかと
 思う今日この頃。
 まぁそんなことはなく、今回はなんとかCは解けたものの
 Dに歯が立たずあえなく終了。
 
 レートは-16の730とまた後退してしまいました。

1. A - A Substring

 小手調べの問題。
 N,A,BとSを読み込み、SをA文字目から
 N-B-1文字目までを切り取って出力して終了。

 https://atcoder.jp/contests/abc417/submissions/68105323

2.B - Search and Delete

 N,M,A,Bを入力し
 Bを一文字ずつ見ていき
 AにあったらAからその文字を削除を繰り返し
 最後に残ったリストAを出力して終了と
 pythonパワーでさっくり回答。
 処理時間が気になりましたがB問題なので
 何とかなるかと提出したら何とかなりました。

 https://atcoder.jp/contests/abc417/submissions/68113204

3.C - Distance Indicators

 とりあえず、素直に全組み合わせで条件(j-i=A[i]+A[j])を満たすかを
 チェックしてカウントする方式で提出。
 むちゃくちゃTLEとなったので、熟考。

 【考え方】
  j-i=A[i]+A[j]をいじって
  ☆i+A[i]=j-A[j]
  i<jかつ、☆の式を満たすiとjの組数が答えとなる
  
 【実装】
  1.N,Aを読み込む
  2.デフォルト辞書Dを初期値空リストで定義
  3.以下A[1]~ANまで繰り返し
   -1.i-A[i]が0以上の時
    辞書Dにキー:i-A[i]、値iで登録
  4.変数ansを0で初期化
  5.以下A[1]~ANまで繰り返し
   -1.変数XにA[i]+iをセット
   -2.DにXがある場合、ansにD[X]の長さを加算
  6.ansを出力して終了

 最初Dのリストを2分探索とかしてましたが
 条件を満たす時はすべての数が当てはまるので
 カウントするだけで済みました。

 https://atcoder.jp/contests/abc417/submissions/68136818

以上

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?