2
2

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.

AtCoderでレートが2000を超えました。

Posted at

AtCoderで黄色になりました

はじめに

タイトルにもある通りAtCoderでレートが2000に到達したでのでそれまでにやったアルゴリズムとかいろいろ文章にしました。
IMG_1889.jpg

黄色になるまでにやったこと

  • セグ木/遅延セグ木
  • dp
  • dijkstra
  • UnionFind
  • 累積和/繰り返し二乗法などの初歩的なもの

セグ木/遅延セグ木について

セグメント木はソラで書けます(多分)が、遅延評価付きのセグメント木はソラで書けません。ライブラリを使っています。下にあるような記事を読むといいと思います。

dpについて

ABC-C/Dくらいでdpは頻出なのでその辺を速く書けると嬉しくなれるかもしれません。最近は添え字をミスらないようにコメントアウトでメモしています。

\\dp[i][j]:i番目まで見て総和がjの通り数
for(int i=0;i<n;i++){
  for(int j=0;j<=m-a[i];j++){
    dp[i+1][j+a[i]]+=dp[i][j];
  }
}

dijkstraについて

私はBFSやDFSをまともに書けないのでdijkstraライブラリを貼ってごまかしています。C++なのでlogがついてもセーフ!をしています(良くない)。
この辺の記事を読むと良いかもしれません。

UnionFindについて

自分のライブラリを持っているんですがACLでいいと思います。あとはABC-D/Eくらいで連結成分の個数みたいなのが答えに関係してくる時は使う可能性が高いと思ってます。グリッド上のBFSで到達可能か判定するみたいなやつも最短経路を求める必要がなければUnionFindでサボれます(参考:ABC276-Eなど)。

その他いろいろ

A問題B問題みたいなのをいかにはやく書くかみたいなのは大事だと思っていて、タイピング速度が遅いのでなるべく簡潔に書けそうな実装を選ぶようにしています(XORとかはA問題で割と有用)。

さいごに

ARCで青落ちしないようにがんばります。少しでも同じような競技プログラマーの参考になれば幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?