pythonと競プロに関するuni745eのブックマーク (2)

  • Python:重み付きUnion-Find木について - あっとのTECH LOG

    今回は素集合データ構造であるUnion-Find木に重みを付けた、Weighted(重み付き) Union-Find木についてまとめます。 Union-Find木についてよくわからないという方は、 at274.hatenablog.com こちらを先に見ていただいた方がいいかと思います。 Weighted Union-Find木について Pythonによる実装 準備 検索(find) 併合(union) 完成形 Weighted Union-Find木について 実装前に、Weighted Union-Findがどんなものかざっくり説明しておきましょう。 まずはイメージ図を見てやってください。 特に深い説明はいらないかと思います。 イメージ図通りです。 例えば、「AさんはBさんより3歳年上。CさんはBさんより2つ下。ではAさんはCさんよりいくつ上?(もしくは下?)」みたいな問題に対して使えま

    Python:重み付きUnion-Find木について - あっとのTECH LOG
    uni745e
    uni745e 2018/10/21
    すごく参考になった。木のランク差に応じた重みの計算方法がわかりやすかった。
  • Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net

    はじめに 標準入力 input と sys.stdin.readline ソート sort と sorted ソートの key ループ for と while リスト リストの初期化 二次元配列の場合 リストの値参照 リストへの値追加 それぞれの処理速度 まとめ はじめに 最近、PythonAtCoderなどの競技プログラミングに挑戦しています。これまであまりに気にしなかったけど、ちょっとした書き方で処理速度が変わってくることに気づいたので、これを気に少し調べてみました。 目次にあるように、標準入力、ソート、ループ、リストについて、計8個の処理の速度比較を行いました。処理速度の計測方法は、Mac Book Pro*1を使い、timeitでそれぞれ100回計測*2し、平均と標準偏差を求めています。 結果だけ知りたい方は、まとめへどうぞ。 計測に用いたコードは以下にあります。 github.

    Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net
    uni745e
    uni745e 2018/10/13
    これは良記事。今日からreadline使います。
  • 1