1927番最小お尻
5930 ワード
質問元:https://www.acmicpc.net/problem/1927
優先順位Qを勉強した以上、問題を解いてみようかと思いますが、少なくともお尻の問題が出てきました.
優先度Qを簡単に振り返ってみましょう.
通常のキューは、要素に優先度があると仮定して、優先度キューは通常のキューとは異なります.(ex.救急室、優先度が高いほど、まず起動します.)
しかし、これらの優先順位キューを配列や接続リストとして実装するとどうなるのでしょうか.
あるインデックスの要素にアクセスするためにはO(1)以上の演算が要求されるため,インデックスが多ければ多いほど効率的に実行されない.
同じです.接続リストは挿入と削除に有効であり、検索値が配列と同様に非効率的に動作します.
したがって、優先キューは、データ構造として
ここで待ってPythonでは優先キューがサポートされていますが、優先キューはhipで実現されます.
例を挙げる.
これは、最小hipがindex=0に最小値を配置し、兄弟ノードのサイズを比較することなく、ツリーのheightレベルでサイズを比較する非常に重要な部分です.したがって、2番目に小さい値を得るためには、エラーによって最小の要素を削除し、次の小さな最小値に達することができる.
なぜまた[2,4,6]なのか.
...Pythonでお尻の動きを学ぶ必要があるようです
どこでこんなに時間の差があるのでしょうか.
まだ勉強中なので、間違ったところがあれば、よろしくお願いします.至れり尽くせりの批判と訂正に感謝します.
優先順位Qを勉強した以上、問題を解いてみようかと思いますが、少なくともお尻の問題が出てきました.
優先度Qを簡単に振り返ってみましょう.
通常のキューは、要素に優先度があると仮定して、優先度キューは通常のキューとは異なります.(ex.救急室、優先度が高いほど、まず起動します.)
しかし、これらの優先順位キューを配列や接続リストとして実装するとどうなるのでしょうか.
整列
あるインデックスの要素にアクセスするためにはO(1)以上の演算が要求されるため,インデックスが多ければ多いほど効率的に実行されない.
接続リスト
同じです.接続リストは挿入と削除に有効であり、検索値が配列と同様に非効率的に動作します.
したがって、優先キューは、データ構造として
힙
を使用する.Pythonでお尻をどう表現しますか?
import heapq
Pythonでは、heapq
はhipの実装を基本的にサポートする内蔵モジュールであり、このときhipは基本的に最小のhipに従う.また,hipは単独のオブジェクトとして新しく作成されたものではなく,リストをパラメータとして,それ自体がhipとして用いられる.例を挙げる.
import heapq
heap = []
heapq.heappush(heap,2)
heapq.heappush(heap,1)
heapq.heappush(heap,6)
heapq.heappush(heap,4)
print(heap)
>>>[1,2,6,4]
heapq.heappop(heap)
>>>[2,4,6]
どうして[1.2.6.4]ですか.これは、最小hipがindex=0に最小値を配置し、兄弟ノードのサイズを比較することなく、ツリーのheightレベルでサイズを比較する非常に重要な部分です.したがって、2番目に小さい値を得るためには、エラーによって最小の要素を削除し、次の小さな最小値に達することができる.
なぜまた[2,4,6]なのか.
...Pythonでお尻の動きを学ぶ必要があるようです
import sys
import heapq
N = int(sys.stdin.readline().rstrip("\n"))
heap = []
for _ in range(N) :
n = int(sys.stdin.readline().rstrip("\n"))
if n!=0 :
heapq.heappush(heap,n)
else :
if not heap :
print("0")
else :
print(heapq.heappop(heap))
最大の臀部応用は−であり,判断を最小にする.どこでこんなに時間の差があるのでしょうか.
まだ勉強中なので、間違ったところがあれば、よろしくお願いします.至れり尽くせりの批判と訂正に感謝します.
Reference
この問題について(1927番最小お尻), 我々は、より多くの情報をここで見つけました https://velog.io/@wondang120/1927번-최소-힙テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol