青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Try Again

基礎(chǔ)知識(shí)學(xué)習(xí)
隨筆 - 4, 文章 - 0, 評論 - 0, 引用 - 0
數(shù)據(jù)加載中……

線段樹

#include <iostream>
#include 
<string>
#include 
<algorithm>
using namespace std;

const int SIZE = 10010;

struct node // the node of line tree
{
    
int i,j; // 區(qū)間范圍
    node * lson;
    node 
* rson;
    
int count; // 線段覆蓋條數(shù)
    int m; // 測度
    int line; // 連續(xù)段數(shù)
    int lbd,rbd; // 用來計(jì)算連續(xù)段數(shù)
    node(int l,int r)
    {
        i 
= l,j = r;
        count 
= m = line = lbd = rbd = 0;
        lson 
= rson = NULL;
    }
};
class LineTree
{
    node 
* head;
    
/* 以下函數(shù)內(nèi)部使用,可不用考慮 */
    
void init(node * pnode = NULL)
    {
        head 
= pnode;
    }
    
void updateM()
    {
        
if (head->count > 0// 被覆蓋滿
            head->= head->- head->i;
        
else if (head->- head->== 1// 該節(jié)點(diǎn)為葉節(jié)點(diǎn)
            head->= 0;
        
else    // 其他內(nèi)部節(jié)點(diǎn)的情況
            head->= (head->lson)->+ (head->rson)->m;
    }
    
void updateLine()
    {
        
if (head->count > 0)
            head
->lbd = head->rbd = head->line = 1;
        
else if (head->- head->== 1)
            head
->lbd = head->rbd = head->line = 0;
        
else
        {
            head
->lbd = (head->lson)->lbd;
            head
->rbd = (head->rson)->rbd;
            head
->line = (head->lson)->line + (head->rson)->line - (head->lson)->rbd * (head->rson)->lbd;
        }
    }
public:
    LineTree();
    
void clear(); // 清空線段數(shù);
    void build(int l,int r); // 建立線段樹,區(qū)間[l,r];
    void insert(int l,int r); // 插入一條線段;
    void del(int l,int r); // 刪除一條線段;
    int GetM(); // 測度;
    int GetLine(); // 連續(xù)段數(shù);
    int GetCov(); // 覆蓋線段數(shù);
    ~LineTree();
};
LineTree::LineTree()
{
    head 
= NULL;
}
void LineTree::clear() // 清空線段數(shù)
{
    
if (head == NULL)
        
return;
    LineTree temp;
    temp.init(head
->lson);
    temp.clear();
    temp.init(head
->rson);
    temp.clear();
    delete head;
    head 
= NULL;
}
void LineTree::build(int l,int r) // 建立線段樹,區(qū)間[l,r]
{
    head 
= new node(l,r);
    
if (r - l > 1)
    {
        
int k = (l + r) / 2;
        LineTree temp;
        temp.build(l,k);
        head
->lson = temp.head;
        temp.init();
        temp.build(k,r);
        head
->rson = temp.head;
    }
}
void LineTree::insert(int l,int r) // 插入一條線段
{
    
if (l <= head->&& r >= head->j)
        (head
->count)++;
    
else
    {
        LineTree temp;
        
if (l < (head->i+head->j)/2)
        {
            temp.init(head
->lson);
            temp.insert(l,r);
        }
        
if (r > (head->i+head->j)/2)
        {
            temp.init(head
->rson);
            temp.insert(l,r);
        }
    }
    updateM();
    updateLine();
}
void LineTree::del(int l,int r) // 刪除一條線段
{
    
if (l <= head->&& head-><= r)
        (head
->count)--;
    
else
    {
        LineTree temp;
        
if (l < (head->i+head->j)/2)
        {
            temp.init(head
->lson);
            temp.del(l,r);
        }
        
if (r > (head->i+head->j)/2)
        {
            temp.init(head
->rson);
            temp.del(l,r);
        }
    }
    updateM();
    updateLine();
}
int LineTree::GetM() // 測度
{
    
return head->m;
}
int LineTree::GetLine() // 連續(xù)段數(shù)
{
    
return head->line;
}
int LineTree::GetCov() // 覆蓋線段數(shù)
{
    
return head->count;
}
LineTree::
~LineTree()
{
    
this->clear();
}

posted on 2008-08-05 09:24 NicYun 閱讀(4282) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区视频免费观看| 99国产精品自拍| 久久久久久久999精品视频| 国际精品欧美精品| 久久综合图片| 欧美激情精品久久久久久黑人| 亚洲国产裸拍裸体视频在线观看乱了中文 | 女生裸体视频一区二区三区| 亚洲人成人一区二区在线观看| 亚洲精品视频在线观看免费| 国产精品美女久久久浪潮软件| 小嫩嫩精品导航| 久久性天堂网| 亚洲欧美国产va在线影院| 性伦欧美刺激片在线观看| 亚洲国产精品激情在线观看| 亚洲精品欧美精品| 欧美国产日韩一二三区| 欧美午夜视频| 欧美 日韩 国产在线| 欧美日韩亚洲系列| 老色鬼精品视频在线观看播放| 欧美国产一区二区三区激情无套| 午夜精品久久久久久久蜜桃app| 久久精品国产77777蜜臀| 洋洋av久久久久久久一区| 欧美一区二区三区免费大片| 日韩写真在线| 老司机午夜精品视频在线观看| 亚洲一区二区黄色| 裸体歌舞表演一区二区| 欧美影院在线| 欧美日韩亚洲一区二区三区在线观看| 久久久美女艺术照精彩视频福利播放| 欧美精品videossex性护士| 欧美一区二区啪啪| 欧美日韩不卡| 欧美激情偷拍| 在线观看欧美一区| 亚洲欧美三级伦理| 亚洲免费在线播放| 欧美日本国产视频| 欧美黄色影院| 狠狠色丁香婷婷综合影院| 亚洲亚洲精品三区日韩精品在线视频 | 欧美极品一区| 欧美成人自拍视频| 国产在线精品自拍| 亚洲欧美精品在线| 校园激情久久| 国产精品日本| 亚洲一区在线直播| 亚洲免费人成在线视频观看| 欧美精品色综合| 亚洲第一福利社区| 激情六月综合| 久久爱www久久做| 久久久久久高潮国产精品视| 国产日韩欧美| 久久成人亚洲| 免费一级欧美在线大片| 精品福利电影| 久热精品视频| 亚洲国产成人精品女人久久久 | 欧美精品激情在线观看| 亚洲国产精品va在线看黑人| 最新精品在线| 欧美日韩成人在线视频| 亚洲精品偷拍| 午夜在线精品| 国产亚洲永久域名| 久久精品水蜜桃av综合天堂| 免费短视频成人日韩| 在线成人亚洲| 欧美精品aa| 亚洲午夜黄色| 久久嫩草精品久久久久| 一区二区视频在线观看| 欧美成人按摩| 一区二区日本视频| 久久久精品国产99久久精品芒果| 国产主播一区二区三区| 老鸭窝毛片一区二区三区| 国产日韩一区在线| 每日更新成人在线视频| 亚洲精品综合精品自拍| 午夜一区二区三区不卡视频| 国内成人精品视频| 欧美精品色网| 欧美亚洲自偷自偷| 亚洲黄一区二区三区| 亚洲制服少妇| 亚洲第一网站| 国产精品久久一卡二卡| 久久美女性网| 亚洲一区二区三区国产| 奶水喷射视频一区| 亚洲在线日韩| 亚洲国产精品热久久| 欧美色道久久88综合亚洲精品| 午夜精品视频网站| 亚洲人成亚洲人成在线观看图片| 性做久久久久久久免费看| 亚洲国产美国国产综合一区二区| 国产精品久久久久久久久| 久久色在线播放| 亚洲在线中文字幕| 91久久国产综合久久| 久久激情综合| 亚洲中字黄色| 99国产一区| 在线成人黄色| 国产香蕉久久精品综合网| 欧美久久久久免费| 美国十次成人| 欧美影院在线| 午夜一区二区三区不卡视频| 日韩亚洲欧美成人| 最新亚洲一区| 欧美成人午夜激情视频| 久久三级福利| 欧美在线亚洲在线| 亚洲欧美日韩一区在线观看| 99视频一区| 亚洲毛片一区二区| 亚洲国产三级在线| 在线观看三级视频欧美| 韩国三级电影一区二区| 国产女人18毛片水18精品| 欧美先锋影音| 国产精品swag| 国产精品欧美久久| 欧美视频免费在线| 欧美色欧美亚洲另类七区| 欧美精品乱人伦久久久久久| 美日韩精品免费| 免费在线成人av| 欧美不卡一卡二卡免费版| 免费欧美在线视频| 免费的成人av| 欧美激情久久久久久| 欧美国产一区视频在线观看| 男人的天堂亚洲在线| 欧美国产日韩一区二区在线观看| 久久婷婷激情| 欧美韩日亚洲| 欧美日韩在线播放一区| 欧美午夜精品久久久| 国产精品视频99| 国产亚洲激情视频在线| 黄色一区二区三区| 91久久精品网| 亚洲性感激情| 久久九九久久九九| 欧美成人一区二区| 日韩亚洲欧美成人| 亚洲欧美日韩国产综合在线| 久久国产主播| 欧美精品免费观看二区| 国产精品久久久久久久久久久久久久 | 欧美在线观看一区二区三区| 久久精品视频免费播放| 麻豆视频一区二区| 亚洲欧洲在线免费| 亚洲免费在线播放| 麻豆9191精品国产| 欧美日韩在线不卡一区| 国产日韩一区二区| 亚洲国产日韩欧美在线99 | 黄网站免费久久| 日韩一区二区精品| 欧美呦呦网站| 91久久午夜| 欧美一区二区精品久久911| 欧美sm视频| 国产欧美日韩免费| 亚洲精品国偷自产在线99热| 亚洲欧美激情四射在线日 | 免费观看一区| 中文精品99久久国产香蕉| 久久精品视频在线看| 欧美视频一二三区| 亚洲电影在线看| 香蕉精品999视频一区二区| 欧美成人免费小视频| 亚洲一区二区三区免费观看| 麻豆精品精品国产自在97香蕉| 国产精品久久久久久模特 | 亚洲激情六月丁香| 欧美在线观看视频在线| 亚洲全黄一级网站| 久久久久国色av免费看影院 | 欧美日韩理论| 亚洲国产精品久久久久婷婷884| 午夜精品久久久久久| 91久久精品国产91久久| 久久男人资源视频| 国产深夜精品福利| 午夜宅男久久久| 一本一本久久a久久精品综合妖精|