亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? seg_tree.h

?? 高效數據類型和算法庫
?? H
字號:
/*******************************************************************************++  LEDA-R  3.2.3++  seg_tree.h++  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik+  Im Stadtwald, 66123 Saarbruecken, Germany     +  All rights reserved.+ *******************************************************************************/#ifndef LEDA_SEGMENT_TREE_H#define LEDA_SEGMENT_TREE_H// ------------------------------------------------------------------//// full dynamic Segment Trees//// Michael Wenzel     (1990)//// Implementation follows// Kurt Mehlhorn: Data Structures and Algorithms, Vol. 3//// ------------------------------------------------------------------#include <LEDA/impl/bb1_tree.h>#include <LEDA/list.h>// ------------------------------------------------------------------// declarations and definitions // ----------------------------------------------------------------- class h_segment;typedef h_segment* h_segment_p;class seg_node_tree;typedef seg_node_tree* seg_node_list;typedef bb1_node* seg_tree_item;typedef list<seg_tree_item> list_seg_tree_item_;//------------------------------------------------------------------// class h_segment//------------------------------------------------------------------class h_segment {  GenPtr _x0;  GenPtr _x1;  GenPtr _y;  GenPtr _inf; public: GenPtr& x0()    { return _x0;   } GenPtr& x1()    { return _x1;   } GenPtr& y()     { return _y;    } GenPtr& info()  { return _inf;  } h_segment(){    _x0 = _x1 = _y = _inf = 0; } h_segment(GenPtr x0, GenPtr x1, GenPtr y, GenPtr i=0){    _x0  = x0;   _x1  = x1;   _y   = y;   _inf = i; } LEDA_MEMORY(h_segment) friend ostream& operator<<(ostream&, h_segment&); friend class Segment_Tree; friend class seg_node_tree;};/*------------------------------------------------------------------   class seg_node_tree = Dictionary(seg_tree_item , void* )-------------------------------------------------------------------*/class seg_node_tree : public bb1_tree {public:Segment_Tree* father;int cmp(GenPtr x, GenPtr y) const;list<seg_tree_item> query(GenPtr, GenPtr);list<seg_tree_item> all_items();int            defined(h_segment_p y)    { return bb1_tree::member(Convert(y)); }seg_tree_item  lookup(h_segment_p y)     { return bb1_tree::lookup(Convert(y)); }seg_tree_item  locate(h_segment_p y)     { return bb1_tree::locate(Convert(y)); }seg_tree_item  ord(int y)                { return bb1_tree::ord(int(y)); }seg_tree_item  insert(h_segment_p y, GenPtr i=0 )                                 { return bb1_tree::insert(Convert(y),i); } void del(h_segment_p y)          { delete bb1_tree::del(Convert(y)); } void del_item(seg_tree_item it)  { del(key(it)); } h_segment_p& key(seg_tree_item it)   	     { if (!it) error_handler(1,"seg_tree_item gleich nil");               return (h_segment_p&)it->ke  ; }GenPtr&   info(seg_tree_item it)              { return key(it)->info(); } void         change_inf(seg_tree_item it, GenPtr i) { key(it)->info() = i; }seg_node_tree(Segment_Tree* p)   {father = p;}virtual ~seg_node_tree()  {}friend class Segment_Tree;} ;#define forall_seg_tree_items(a,b) for ((b).init_iterator(); a=(b).move_iterator(); )//------------------------------------------------------------------// class segment_tree//------------------------------------------------------------------class Segment_Tree  : public bb1_tree {virtual  h_segment_p new_y_h_segment(GenPtr y){ cout << "error: virtual new_y_h_segmentn"; y=0; return 0; }virtual int cmp_dim1(GenPtr,GenPtr) {return 0; }virtual int cmp_dim2(GenPtr,GenPtr) {return 0; }virtual void clear_dim1(GenPtr&) {}virtual void clear_dim2(GenPtr&) {}virtual void clear_info(GenPtr&) {}virtual void copy_dim1(GenPtr&)  {}virtual void copy_dim2(GenPtr&)  {}virtual void copy_info(GenPtr&)  {}int seg_cmp(h_segment_p p, h_segment_p q);  void lrot(bb1_item , bb1_item);  void rrot(bb1_item , bb1_item);  void ldrot(bb1_item , bb1_item);  void rdrot(bb1_item , bb1_item);  //void change_inf(bb1_item it, seg_node_list i)   { info(it) = i; }  GenPtr& key(bb1_item it)              { if (!it) error_handler(1,"bb1_item in segment_tree gleich nil");	 return it->ke; }  seg_node_list& info(bb1_item it)    { return (seg_node_list&)(bb1_tree::info(it)); }   int start_coord(bb1_item& x,seg_tree_item& i)      { return (!cmp(key(x),x0(i))); }  int end_coord(bb1_item& x,seg_tree_item& i)      { return (!cmp(key(x),x1(i))); }  int empty(bb1_item);  void clear(bb1_item& );  void print(bb1_item , string);   protected:  seg_node_tree r;                // tree with all segments  int cmp_dummy(int a, int b, int c);  public :    int cmp(GenPtr, GenPtr)  const      { cout << "error: Segment_Tree::cmpn"; return 0; }  GenPtr x0(seg_tree_item x)    { return (r.key(x))->_x0;  }  GenPtr x1(seg_tree_item x)    { return (r.key(x))->_x1;  }  GenPtr y(seg_tree_item x)     { return (r.key(x))->_y;   }  GenPtr& inf(seg_tree_item x)  { return r.info(x);        }  GenPtr& x0(h_segment_p x)   { return x->_x0; }  GenPtr& x1(h_segment_p x)   { return x->_x1; }  GenPtr& y(h_segment_p x)    { return x->_y; }  GenPtr& inf(h_segment_p x)  { return x->_inf; }  void change_inf(seg_tree_item x, GenPtr i)  { r.info(x) = i; }  seg_tree_item insert(GenPtr, GenPtr, GenPtr, GenPtr i=0 );  void del(GenPtr, GenPtr, GenPtr);  void del_item(seg_tree_item it) { del(x0(it),x1(it),y(it)) ; }  seg_tree_item lookup(GenPtr, GenPtr, GenPtr );  int member(GenPtr x0, GenPtr x1, GenPtr y) { return (lookup(x0,x1,y)!=0 ) ; }  list<seg_tree_item> query(GenPtr, GenPtr, GenPtr );  list<seg_tree_item> x_infinity_query(GenPtr, GenPtr );  list<seg_tree_item> y_infinity_query(GenPtr );  list<seg_tree_item> all_items();  void clear_tree();     Segment_Tree();   virtual ~Segment_Tree();  int size()                   { return r.size();   }  int empty()                  { return (r.size()==0) ; }  seg_tree_item y_min()        { return r.min();    }  seg_tree_item y_max()        { return r.max();    }  void init_iterator()            { r.init_iterator(); }  seg_tree_item move_iterator()   { return r.move_iterator(); }  void print_tree()               { print(root,"");    }  friend class seg_node_tree;};//------------------------------------------------------------------// typed segment_tree//------------------------------------------------------------------template <class  type1, class type2, class itype>class segment_tree : public Segment_Tree {h_segment_p new_y_h_segment(GenPtr y){ type1 x1;   type2 x2;  GenPtr p = Copy(x1);  GenPtr q = Copy(x2);  return new h_segment(p,q,y); }int cmp_dim1(GenPtr x,GenPtr y) { return LEDA_COMPARE(type1,x,y); }int cmp_dim2(GenPtr x,GenPtr y) { return LEDA_COMPARE(type2,x,y); }void clear_dim1(GenPtr& x)     { LEDA_CLEAR(type1,x); }void clear_dim2(GenPtr& x)     { LEDA_CLEAR(type2,x); }void clear_info(GenPtr& x)     { LEDA_CLEAR(itype,x); }void copy_dim1(GenPtr& x)     { LEDA_COPY(type1,x); }void copy_dim2(GenPtr& x)     { LEDA_COPY(type2,x); }void copy_info(GenPtr& x)     { LEDA_COPY(itype,x); }int cmp(GenPtr x, GenPtr y) const { return LEDA_COMPARE(type1,x,y);}public:type1  x0(seg_tree_item it)  { return LEDA_ACCESS(type1,Segment_Tree::x0(it)); }type1  x1(seg_tree_item it)  { return LEDA_ACCESS(type1,Segment_Tree::x1(it)); }type2   y(seg_tree_item it)  { return LEDA_ACCESS(type2,Segment_Tree::y(it));  }itype inf(seg_tree_item it)  { return LEDA_ACCESS(itype,Segment_Tree::inf(it));}seg_tree_item insert(type1 x0, type1 x1, type2 y, itype i){ return Segment_Tree::insert(Convert(x0),Convert(x1),Convert(y),Convert(i)); }void del(type1 x0, type1 x1, type2 y){ Segment_Tree::del(Convert(x0),Convert(x1),Convert(y)); }seg_tree_item lookup(type1 x0, type1 x1, type2 y){ return Segment_Tree::lookup(Convert(x0),Convert(x1),Convert(y)); }int member(type1 x0, type1 x1, type2 y){ return Segment_Tree::member(Convert(x0),Convert(x1),Convert(y)); }list<seg_tree_item> query(type1 x,type2 y0,type2 y1){ return Segment_Tree::query(Convert(x),Convert(y0),Convert(y1)); }list<seg_tree_item> x_infinity_query(type2 y0,type2 y1){ return Segment_Tree::x_infinity_query(Convert(y0),Convert(y1)); }list<seg_tree_item> y_infinity_query(type1 x){ return Segment_Tree::y_infinity_query(Convert(x)); }segment_tree()  {}~segment_tree() { seg_tree_item z;  forall_seg_tree_items(z,r)  { type1 t1 = x0(z); Clear(t1);           t1 = x1(z); Clear(t1);     type2 t2 = y(z);  Clear(t2);     itype i  = inf(z); Clear(i);     delete r.key(z); } }} ;//------------------------------------------------------------------// Iterator//------------------------------------------------------------------#define forall_seg_tree_items(a,b) for ((b).init_iterator(); a=(b).move_iterator(); )#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片在线观看中文| 中文乱码免费一区二区| 亚洲午夜精品17c| 欧美中文字幕一二三区视频| 亚洲精品水蜜桃| 色88888久久久久久影院野外| 亚洲美女在线一区| 欧美亚洲国产一区二区三区va| 亚洲自拍欧美精品| 欧美剧在线免费观看网站| 美女脱光内衣内裤视频久久影院| 欧美一级欧美一级在线播放| 美国精品在线观看| 中文av一区二区| 欧美日韩国产精品成人| 青草av.久久免费一区| 日本一区二区三区在线观看| 99久久夜色精品国产网站| 亚洲一区二区成人在线观看| 日韩一区二区电影在线| 国产suv精品一区二区883| 国产精品高潮久久久久无| 欧美日韩不卡一区| 国产精品66部| 亚洲精品视频在线看| 在线不卡免费av| 成人一级视频在线观看| 亚洲一区二区三区四区在线免费观看| 日韩限制级电影在线观看| 成人免费视频视频| 亚洲不卡在线观看| 国产亚洲成年网址在线观看| 在线欧美日韩精品| 狠狠色丁香婷婷综合| 亚洲激情男女视频| 精品日本一线二线三线不卡| 91年精品国产| 久99久精品视频免费观看| 亚洲激情在线激情| 国产人成亚洲第一网站在线播放| 欧美伦理电影网| fc2成人免费人成在线观看播放 | 在线欧美日韩国产| 国产伦精品一区二区三区视频青涩 | 一区二区三区色| 精品欧美一区二区三区精品久久| 色综合咪咪久久| 国产高清在线观看免费不卡| 蜜臀精品久久久久久蜜臀| 1区2区3区国产精品| 精品乱人伦一区二区三区| 欧美视频中文字幕| aaa亚洲精品一二三区| 麻豆精品国产传媒mv男同| 一区二区三区在线视频观看58| 日本一区二区三区免费乱视频 | 一区二区三区精品久久久| 国产免费成人在线视频| 欧美v亚洲v综合ⅴ国产v| 欧美日本乱大交xxxxx| 91一区二区在线| av激情综合网| 懂色av一区二区三区免费观看| 麻豆高清免费国产一区| 偷拍一区二区三区四区| 亚洲成人一二三| 亚洲午夜精品一区二区三区他趣| 亚洲欧美综合另类在线卡通| 国产精品天干天干在观线| 国产日韩精品一区| 久久久精品国产免大香伊 | 精品无人码麻豆乱码1区2区| 亚洲chinese男男1069| 亚洲第一成人在线| 亚洲高清久久久| 一区av在线播放| 夜夜嗨av一区二区三区四季av| 亚洲欧美在线视频观看| 亚洲裸体xxx| 亚洲精品高清在线| 亚洲综合久久久| 亚洲成人免费影院| 日韩av高清在线观看| 日韩1区2区3区| 久久精品久久99精品久久| 精品在线播放午夜| 国产精品综合一区二区| 国产不卡免费视频| www.66久久| 欧美色老头old∨ideo| 欧美人伦禁忌dvd放荡欲情| 8x8x8国产精品| 欧美成人午夜电影| 久久亚洲影视婷婷| 亚洲欧美自拍偷拍| 午夜精品久久久久久久久久| 热久久一区二区| 国产精品一卡二卡| 成人av在线网| 欧美日韩精品久久久| 欧美成人艳星乳罩| 国产精品久久久久精k8 | 欧美三区在线观看| 日韩亚洲欧美在线| 国产日韩欧美制服另类| 最新日韩在线视频| 日韩激情一二三区| 成人综合婷婷国产精品久久蜜臀| 99久久99久久精品免费看蜜桃| 在线观看一区二区视频| 91精品国产综合久久久久| 久久蜜桃av一区精品变态类天堂| **网站欧美大片在线观看| 婷婷久久综合九色综合伊人色| 国产呦萝稀缺另类资源| 色综合天天性综合| 欧美一级欧美三级在线观看| 日本一区二区动态图| 一区二区三区.www| 久久99国产乱子伦精品免费| 91免费观看国产| 日韩视频免费观看高清完整版在线观看| 久久综合九色欧美综合狠狠| 一区二区在线电影| 美女一区二区三区| 日本韩国精品在线| 久久综合九色综合欧美98| 亚洲综合av网| 不卡一卡二卡三乱码免费网站| 5858s免费视频成人| 国产精品看片你懂得| 日本视频一区二区| 色婷婷国产精品| 久久精品在这里| 美女脱光内衣内裤视频久久影院| 91色|porny| 欧美韩日一区二区三区四区| 免费观看成人av| 欧美午夜电影在线播放| 国产精品免费视频网站| 蜜臀av亚洲一区中文字幕| 色婷婷精品久久二区二区蜜臀av| 久久久久久久久久久久久女国产乱| 亚洲成a人v欧美综合天堂| 91亚洲国产成人精品一区二区三| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 高潮精品一区videoshd| 欧美一级爆毛片| 性做久久久久久| 在线亚洲人成电影网站色www| 中文子幕无线码一区tr| 国内国产精品久久| 91精品国产综合久久福利| 一区二区三区色| 91久久精品一区二区三区| 国产精品美女久久久久久| 国产成人精品一区二区三区四区 | 久久精品国产精品亚洲综合| 91麻豆高清视频| 国产精品私人影院| 国产传媒久久文化传媒| 久久精品亚洲国产奇米99| 奇米影视在线99精品| 欧美精品三级在线观看| 亚洲一区二区精品3399| 在线观看区一区二| 亚洲午夜羞羞片| 欧洲av在线精品| 亚洲午夜电影在线观看| 欧美日韩精品二区第二页| 一区二区三区国产精华| 色悠悠亚洲一区二区| 亚洲精品乱码久久久久久日本蜜臀| 99精品在线观看视频| 亚洲视频一二三| 色婷婷精品久久二区二区蜜臂av | 亚洲综合色视频| 欧美视频日韩视频| 亚洲国产一二三| 91精品国产欧美一区二区18| 午夜精品久久久久久久99樱桃| 69堂精品视频| 久久99日本精品| 国产欧美一区二区精品久导航 | 亚洲人妖av一区二区| 在线日韩一区二区| 丝袜美腿亚洲一区二区图片| 日韩免费观看高清完整版| 久久99精品国产91久久来源| 久久先锋影音av鲁色资源网| 成人午夜在线播放| 夜夜爽夜夜爽精品视频| 56国语精品自产拍在线观看| 国内精品第一页| 国产精品第四页| 欧美一区二区三区在线观看视频| 久久精品国内一区二区三区| 中文字幕乱码一区二区免费| 91国偷自产一区二区使用方法| 日韩精品每日更新|