<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
  <author_name>drken1215</author_name>
  <author_url>https://blog.hatena.ne.jp/drken1215/</author_url>
  <blog_title>けんちょんの競プロ精進記録</blog_title>
  <blog_url>https://drken1215.hatenablog.com/</blog_url>
  <categories>
    <anon>YosupoLibraryChecker</anon>
    <anon>Cartesian木</anon>
    <anon>データ構造</anon>
    <anon>stack</anon>
    <anon>入れ子構造</anon>
    <anon>非自明な線形時間</anon>
    <anon>テーマ解説記事</anon>
    <anon>操作をstackを用いて高速化する</anon>
  </categories>
  <description>Cartesian Tree を実装しよう！ 具体的には、Yosupo Library Checker の問題「Cartesian Tree」を通すことにする。 問題概要 長さ の数列 (互いに異なる) から誘導される Cartesian Tree を求めて出力せよ。 具体的には Cartesian Tree の各頂点について、その親頂点の番号を出力せよ (根については自分自身を親とする)。 ただし、数列中の最も小さい要素を根とすることにする。 制約 Cartesian Tree とは 数列から誘導される Cartesian Tree とは、下図のような二分木だ (wikipedia より)。…</description>
  <height>190</height>
  <html>&lt;iframe src=&quot;https://hatenablog-parts.com/embed?url=https%3A%2F%2Fdrken1215.hatenablog.com%2Fentry%2F2023%2F10%2F19%2F025800&quot; title=&quot;Cartesian Tree の実装 〜 stack を用いた O(N) 時間構築 - けんちょんの競プロ精進記録&quot; class=&quot;embed-card embed-blogcard&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;&quot;&gt;&lt;/iframe&gt;</html>
  <image_url>https://cdn-ak.f.st-hatena.com/images/fotolife/d/drken1215/20231019/20231019025137.png</image_url>
  <provider_name>Hatena Blog</provider_name>
  <provider_url>https://hatena.blog</provider_url>
  <published>2023-10-19 02:58:00</published>
  <title>Cartesian Tree の実装 〜 stack を用いた O(N) 時間構築</title>
  <type>rich</type>
  <url>https://drken1215.hatenablog.com/entry/2023/10/19/025800</url>
  <version>1.0</version>
  <width>100%</width>
</oembed>
