<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/kyopro-lib/">
    <title>競プロライブラリ</title>
    <link>http://w.atwiki.jp/kyopro-lib/</link>
    <atom:link href="https://w.atwiki.jp/kyopro-lib/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>競プロライブラリ</description>

    <dc:language>ja</dc:language>
    <dc:date>2018-02-13T22:23:58+09:00</dc:date>
    <utime>1518528238</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/8.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kyopro-lib/pages/6.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/15.html">
    <title>遅延セグメントツリー</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/15.html</link>
    <description>
      http://tsutaj.hatenablog.com/entry/2017/03/30/224339

AOJのDSLでverify
ToDo:抽象化した実装、動的構築
http://beet-aizu.hatenablog.com/entry/2017/12/01/225955
https://tomcatowl.github.io/post/ds-and-alg-1/
http://d.hatena.ne.jp/DEGwer/20131211/1386757368

*区間更新区間最小
遅延セグ木で区間に対しての更新に対応

#region(ソースコード)
#highlight(linenumber,cpp) {{
// 区間更新、区間最小の遅延セグメントツリー
struct RMQRUQ {
  int n;
  vector&lt;int&gt; dat, lazy;

  RMQRUQ(){}
  RMQRUQ(int n_) {
    n = 1; while(n &lt; n_) n *= 2;
    dat.assign(n*2, INT_MAX);
    lazy.assign(n*2, INT_MAX);
  }

  void eval(int len, int k) {
    if(lazy[k] == INT_MAX) return;
    if(k*2+1 &lt; n*2-1) {
      lazy[2*k+1] = lazy[k];
      lazy[2*k+2] = lazy[k];
    }
    dat[k] = lazy[k];
    lazy[k] = INT_MAX;
  }

  // [a, b)
  ll update(int a, int b, ll x, int k, int l, int r) {
    eval(r-l, k);
    if(b &lt;= l || r &lt;= a) return dat[k];
    if(a &lt;= l &amp;&amp; r &lt;= b) {
      lazy[k] = x;
      return lazy[k];
    }
    return dat[k] = min(update(a,    </description>
    <dc:date>2018-02-13T22:23:58+09:00</dc:date>
    <utime>1518528238</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/14.html">
    <title>segment</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/14.html</link>
    <description>
      *segment木
点更新と区間[a,b)に対するクエリがO(logN)でできる
[[http://tubo28.me/algorithm/segtree_monoids/]]
[[http://beet-aizu.hatenablog.com/entry/2017/09/10/132258]]

#region(ソースコード)
#highlight(linenumber,cpp){{
template &lt;typename monoid&gt;
class segmentTree {
public:
  using M = monoid;
  using T = typename M::value_type;

  int sz;
  vector&lt;T&gt; x;

  segmentTree(int n = 1e5) {
    sz = 1; while(sz &lt; n) sz *= 2;
    init();
  }
  void init() { x.assign(sz*2, M::id()); }

  // [a, b)
  T query(int a, int b, int k, int l, int r) {
    if(r &lt;= a || b &lt;= l) return M::id();
    if(a &lt;= l &amp;&amp; r &lt;= b) return x[k];
    return M::f(query(a, b, 2*k+1, l, (l+r)/2),
                query(a, b, 2*k+2, (l+r)/2, r));
  }
  T query(int a, int b) {return query(a, b, 0, 0, sz);}
  // 点更新
  void update(int i, const T &amp;val) {
    i += sz-1;
    x[i] = M::g(x[i], val);
    while(i &gt; 0) {
      i = (i-1) / 2;
      x[i] = M::f(x[i*2+1], x[i*2+2]);
    }
  }
};

template &lt;typename T&gt;
st    </description>
    <dc:date>2018-02-13T20:12:27+09:00</dc:date>
    <utime>1518520347</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/13.html">
    <title>部分永続UnionFind</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/13.html</link>
    <description>
      *部分永続UnionFind
t回目までのuniteクエリでx,yが同じ連結成分にいるかどうかを求められる
uniteがO(logN)、findがO(logN)
[[参考ページ&gt;https://camypaper.bitbucket.io/2016/12/18/adc2016/]]

#highlight(linenumber,cpp){{
// find:O(logN) unite:O(logN)
class persistentUF {
public:
  const static int MAX_N = 100010;
  unordered_map&lt;int, int&gt; par[MAX_N];
  int rank[MAX_N];
  int fin[MAX_N];
  int idx;

  persistentUF() { init(); }
  void init() {
    idx = 0;
    REP(i, MAX_N) par[i][0] = i, rank[i] = 1, fin[i] = 0;
  }
  persistentUF(int n) { init(n); }
  void init(int n) {
    idx = 0;
    REP(i, n) par[i][0] = i, rank[i] = 1, fin[i] = 0;
  }

  int find(int x, int t) {
    if(t &gt;= fin[x] &amp;&amp; par[x][fin[x]] != x) return find(par[x][fin[x]], t);
    return x;
  }

  void unite(int x, int y) {
    x = find(x, idx);
    y = find(y, idx);
    idx++;
    if(x == y) return;
    if(rank[x] &lt; rank[y]) par[x][idx] = y, fin[x] = idx;
    else {
      par[y][idx] = x, fin[y] = idx;
      if(rank[x] == rank[y]    </description>
    <dc:date>2018-02-13T18:48:41+09:00</dc:date>
    <utime>1518515321</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/12.html">
    <title>BIT</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/12.html</link>
    <description>
      *BinaryIndexedTree
点更新と区間[0,i)に対するクエリをそれぞれO(logN)でできるデータ構造
i&amp;-iでiで1の最下位bitが取得できるのをつかって実装
単位元と更新クエリ、区間クエリに使う式を指定する
デフォルト引数のまま使うとよくある和を求めるBIT
[[わかりやすいスライド&gt;http://hos.ac/slides/20140319_bit.pdf]]

#highlight(linenumber,cpp){{
// Binary Indexed Tree
// 0-indexed
template &lt;typename T&gt;
class BIT {
private:
  vector&lt;T&gt; bit;
  // 単位元
  int neutral = 0;
  // 更新クエリ, 区間クエリ
  function&lt;T(T,T)&gt; f = [](const T l, const T r) { return l+r; };
  function&lt;T(T,T)&gt; g = [](const T l, const T r) { return l+r; };
public:
  // 初期化
  BIT(int neu = 0,
    function&lt;T(T,T)&gt; _f = [](const T l, const T r) { return l+r; },
    function&lt;T(T,T)&gt; _g = [](const T l, const T r) { return l+r; },
    int n = 1e5)
  {
    init(neu, _f, _g, n);
  }
  void init(int neu = 0,
    function&lt;T(T,T)&gt; _f = [](const T l, const T r) { return l+r; },
    function&lt;T(T,T)&gt; _g = [](const T l, const T r) { return l+r; },
    int n = 1e5)
  {
    neutral = neu; f = _f; g = _g;
    bit.assign(n+5, neutral);
    </description>
    <dc:date>2018-02-13T22:24:57+09:00</dc:date>
    <utime>1518528297</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/11.html">
    <title>プラグイン/インスタグラム</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/11.html</link>
    <description>
      *インスタグラムプラグイン

人気の画像共有サービス、Instagram(インスタグラム）の画像をアットウィキに貼れるプラグインです。


 #ig_user(ユーザー名)
 と記載することで、特定ユーザーのInstagramのフィードを表示することができます。

例）@dogoftheday
#ig_user(dogoftheday)

----

 #ig_tags(タグ名)
 と記載することで、特定タグのInstagramのフィードを表示することができます。

#dogofthedayjp タグ
#ig_tag(dogofthedayjp)

----

 #ig_popular
 と記載することで、Instagramのpopularフィードを表示することができます。



詳しい使い方は以下のページを参考にしてください！
＝＞http://www1.atwiki.jp/guide/pages/935.html

--------    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/10.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/10.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://www1.atwiki.jp/guide/pages/921.html#id_476878da


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment
    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/9.html">
    <title>プラグイン</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/9.html</link>
    <description>
      @wikiにはいくつかの便利なプラグインがあります。

-----


#ls

-----

これ以外のプラグインについては@wikiガイドをご覧ください
=&gt;http://atwiki.jp/guide/
    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/8.html">
    <title>プラグイン/動画(Youtube)</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/8.html</link>
    <description>
      * 動画(youtube)
@wikiのwikiモードでは
 #video(動画のURL)
と入力することで、動画を貼り付けることが出来ます。
詳しくはこちらをご覧ください。
＝＞http://www1.atwiki.jp/guide/pages/801.html#id_30dcdc73

また動画のURLはYoutubeのURLをご利用ください。
＝＞http://www.youtube.com/

-----


たとえば、#video(http://youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。


#video(http://youtube.com/watch?v=kTV1CcS53JQ)

    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/7.html">
    <title>プラグイン/RSS</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/7.html</link>
    <description>
      *RSSを取り込んで一覧表示(rss)
 #rss(ここにＲＳＳのＵＲＬ)
もしくは
 #rss(ここにＲＳＳのＵＲＬを入力)
と入力することで指定したＲＳＳを取り込んで一覧表示します。

詳しくはこちらをご覧ください。
＝＞http://www1.atwiki.jp/guide/pages/269.html#id_a0e79757

----
たとえば、#rss(http://www1.atwiki.jp/guide/rss10_new.xml) と入力すると以下のように表示されます。

#rss(http://www1.atwiki.jp/guide/rss10_new.xml)
    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kyopro-lib/pages/6.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/kyopro-lib/pages/6.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://www1.atwiki.jp/guide/pages/921.html#id_2d967d6e


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2018-02-13T17:58:24+09:00</dc:date>
    <utime>1518512304</utime>
  </item>
  </rdf:RDF>
