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

隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
數據加載中……

PKU 2528 Mayor's posters

題目鏈接:http://poj.org/problem?id=2528

/*
題意:
    給定N(N <= 10000)塊木板,依次層疊,問最后能從上方俯視的木板的數量。


解法:
線段樹(染色問題)

思路:
    這題是pku 2777的簡化版,木板的數量最多10000種,每個結點都保存下來
似乎有點力不從心,但是因為插入是多次,而詢問只有一次,所以我們只要保證
插入是O(logn)的,而詢問可以O(n),這樣問題就變得簡單許多,線段樹結點保存
一個Cover域,初始化為0,表示是0號木板(輸入數據的木板編號從1開始),每
次插入時只更新到完全覆蓋的區間,如果當前結點的左右兒子的木板顏色不同,
那么它的Cover域就是-1,否則是木板的下標。詢問的時候如果遇到Cover域為-1
的結點則遞歸它的子結點,否則統計。
*/


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

#define maxn 100010

int tmp[maxn], tmpsize;
int bin[maxn], size;

struct Interval {
    
int l, r;
}
I[maxn];

struct Tree {
    
int nCover;
    
int son[2];

    
void clear() {
        son[
0= son[1= -1;
        nCover 
= 0;
    }

}
T[ maxn*4 ];
int root, tot = 0;

int GetId(int& root) {
    
if(root == -1{
        root 
= tot++;
        T[root].clear();
    }

    
return root;
}


void Discretization() {
    sort(tmp, tmp 
+ tmpsize);
    bin[ size 
= 1 ] = tmp[0];
    
int i;
    
for(i = 1; i < tmpsize; i++{
        
if(tmp[i] != tmp[i-1])
            bin[ 
++size ] = tmp[i];
    }

}


int Binary(int v) {
    
int l = 1;
    
int r = size;
    
while(l <= r) {
        
int m = (l + r) >> 1;
        
if(bin[m] == v)
            
return m;
        
if(v > bin[m]) {
            l 
= m + 1;
        }
else
            r 
= m - 1;
    }

}


int hash[ maxn ], Case;

void Insert(int& root, int nl, int nr, int l, int r, int val) {
    
if(nl > r || nr < l)
        
return ;

    GetId(root);
    
if(nl <= l && r <= nr) {
        T[root].nCover 
= val;
        
return ;
    }


    
if(T[root].nCover != -1{
        
int i;
        
for(i = 0; i < 2; i++{
            
int idx = GetId(T[root].son[i]);
            T[idx].nCover 
= T[root].nCover;
        }

        T[root].nCover 
= -1;
    }


    
int mid = (l + r) >> 1;
    Insert(T[root].son[
0], nl, nr, l, mid, val);
    Insert(T[root].son[
1], nl, nr, mid+1, r, val);
}


void Query(int root, int l, int r) {
    
if(root == -1)
        
return ;
    
if(T[root].nCover != -1{
        hash[ T[root].nCover ] 
= Case;
        
return ;
    }

    
int mid = (l + r) >> 1;
    Query(T[root].son[
0], l, mid);
    Query(T[root].son[
1], mid+1, r);
}


int main() {
    
int t, i;
    
int n;
    scanf(
"%d"&t);
    
while(t--{
        Case 
++;
        tmpsize 
= 0;
        scanf(
"%d"&n);
        
for(i = 0; i < n; i++{
            scanf(
"%d %d"&I[i].l, &I[i].r);
            tmp[ tmpsize 
++ ] = I[i].l;
            tmp[ tmpsize 
++ ] = I[i].r;
        }

        Discretization();
        root 
= -1;
        tot  
= 0;
        
for(i = 0; i < n; i++{
            I[i].l 
= Binary(I[i].l);
            I[i].r 
= Binary(I[i].r);
            
//printf("<%d %d>\n", I[i].l, I[i].r);
            Insert(root, I[i].l, I[i].r, 1, size, i+1);
        }

        
int nCount = 0;
        Query(root, 
1, size);
        
for(i = 1; i <= size; i++{
            
if(hash[i] == Case)
                nCount 
++;
        }

        printf(
"%d\n", nCount);
    }

    
return 0;
}

posted on 2011-03-31 21:23 英雄哪里出來 閱讀(1205) 評論(0)  編輯 收藏 引用 所屬分類: 線段樹

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            激情六月综合| 欧美精品亚洲精品| 国产欧美日韩激情| 久久av最新网址| 久久gogo国模裸体人体| 狠狠色综合播放一区二区| 老司机成人网| 欧美sm重口味系列视频在线观看| 亚洲茄子视频| 这里只有视频精品| 国内精品福利| 亚洲激情网站免费观看| 欧美日韩一区二区免费视频| 亚洲欧美日韩一区二区在线| 久久成人av少妇免费| 亚洲国产美女精品久久久久∴| 亚洲国产mv| 国产精品欧美一区二区三区奶水| 欧美专区第一页| 免费成人高清视频| 亚洲欧美日韩一区二区在线| 久久美女性网| 亚洲一二三四久久| 久久深夜福利| 久久久综合网站| 欧美韩日亚洲| 久久精品成人| 欧美三级欧美一级| 久久久91精品| 欧美三级中文字幕在线观看| 久久久噜噜噜久久中文字免| 欧美日韩三级电影在线| 久久久久这里只有精品| 欧美三级小说| 亚洲黄色av一区| 精品二区视频| 亚洲先锋成人| 一个色综合导航| 久久综合九色99| 欧美自拍偷拍午夜视频| 欧美激情小视频| 久热re这里精品视频在线6| 欧美午夜美女看片| 亚洲国产三级网| 影音先锋久久久| 欧美一区三区二区在线观看| 亚洲性感激情| 欧美日韩亚洲一区二区三区| 欧美v国产在线一区二区三区| 国产精品美女| 亚洲理伦电影| 在线视频你懂得一区二区三区| 久久男人资源视频| 久久精彩视频| 国产精品一区二区三区观看| 99国产精品| 亚洲一区二区精品视频| 欧美三级电影一区| 亚洲毛片在线观看| 日韩视频免费观看高清完整版| 久久综合影音| 欧美激情a∨在线视频播放| 在线日韩成人| 蜜臀av一级做a爰片久久| 欧美不卡视频一区发布| 依依成人综合视频| 久久久综合网站| 免费av成人在线| 亚洲国产精品久久久久久女王| 久久资源av| 亚洲激情av在线| 一区二区三区产品免费精品久久75| 欧美国产综合视频| 亚洲狼人综合| 欧美一区二区视频在线观看2020| 国产精自产拍久久久久久蜜| 性视频1819p久久| 免费成人av资源网| 亚洲精品综合精品自拍| 欧美日韩久久久久久| 亚洲一本视频| 久久手机免费观看| 亚洲国产精品精华液2区45| 欧美激情一区二区三级高清视频| 亚洲精品久久久久久久久久久久久| 一本久久a久久免费精品不卡| 欧美丝袜一区二区| 久久激情综合| 91久久精品国产91久久性色tv | 亚洲一区二区三区精品在线观看 | 亚洲自拍偷拍一区| 久久精品成人| 亚洲乱码国产乱码精品精可以看 | 欧美高清自拍一区| 国产精品99久久久久久有的能看| 久久福利毛片| 亚洲精品一区二区三区四区高清 | 国产精品theporn| 久久不射中文字幕| 亚洲精品裸体| 老司机午夜精品| 亚洲特黄一级片| 永久免费精品影视网站| 欧美日韩国产欧美日美国产精品| 午夜精品久久久久久99热| 亚洲国产电影| 久久日韩精品| 亚洲综合不卡| 亚洲区在线播放| 国产一区二区三区四区五区美女| 欧美国产精品va在线观看| 欧美在线免费播放| 一二美女精品欧洲| 蜜桃久久精品乱码一区二区| 亚洲综合色激情五月| 亚洲精品一区二区三| 黄色成人av网站| 国产精品久久久久9999吃药| 美女主播一区| 久久久久久久久久看片| 亚洲免费视频成人| 亚洲美女毛片| 亚洲欧洲在线播放| 免费成年人欧美视频| 久久国产免费| 午夜免费在线观看精品视频| 一本到12不卡视频在线dvd| 精品1区2区3区4区| 国产午夜精品麻豆| 国产伦精品一区二区三区免费 | 国产日韩一区二区三区在线| 欧美日韩综合不卡| 欧美日韩国产小视频| 欧美.com| 欧美wwwwww| 欧美高清日韩| 欧美日韩亚洲视频一区| 欧美日韩成人| 欧美日韩在线影院| 欧美日韩免费在线| 欧美色大人视频| 欧美三区美女| 国产精品影音先锋| 国产日韩欧美综合一区| 国产伦精品一区| 黄色成人在线观看| 在线观看视频免费一区二区三区| 怡红院精品视频在线观看极品| 亚洲高清在线| 亚洲精品在线视频观看| 中国成人黄色视屏| 午夜精品久久久久久久蜜桃app | 欧美/亚洲一区| 亚洲第一级黄色片| 91久久夜色精品国产网站| 亚洲美女av黄| 午夜在线精品偷拍| 激情综合中文娱乐网| 极品少妇一区二区| 亚洲国产你懂的| 亚洲欧美国产日韩天堂区| 欧美亚洲综合网| 乱码第一页成人| 亚洲精品欧洲| 午夜精品久久久久久久久久久久| 久久高清国产| 欧美激情一区在线观看| 国产精品xxxav免费视频| 国产日韩在线看片| 日韩视频亚洲视频| 欧美影视一区| 亚洲欧洲精品一区| 亚洲欧美99| 欧美成人精品一区二区| 国产精品久久久亚洲一区| 激情五月婷婷综合| av成人免费观看| 久久久噜噜噜久久| 99re热这里只有精品视频| 欧美在线高清视频| 欧美日韩国产一区二区三区地区 | 国产精品第2页| 在线观看成人一级片| 亚洲一区影音先锋| 免费中文字幕日韩欧美| 亚洲深夜影院| 欧美成人免费观看| 国产欧美精品国产国产专区| 亚洲精品免费观看| 久久久欧美精品| 亚洲综合久久久久| 欧美色大人视频| 亚洲日本久久| 欧美成人dvd在线视频| 亚洲免费影视第一页| 欧美激情综合五月色丁香小说| 国模精品一区二区三区色天香| 亚洲一区三区视频在线观看| 91久久精品国产| 麻豆九一精品爱看视频在线观看免费|