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

posts - 100,  comments - 15,  trackbacks - 0
//離散化+線段樹

(以下轉)感謝它幫助我理解離散化

假如不離散化,那線段樹的上界是10^7,假如建一個那么大的線段樹的話。。。必然MLE。于是要考慮離散化。
離散化的目的就是要將線段的長度適當的縮小,但不破壞題意。
比如:
------   (1,6)
------------ (1,12 )
像這樣這樣的兩條線段,可以把它們看作:
-- (1,2)
--- ( 1,3 )
這樣,縮短了線段的長度,但是他們的覆蓋關系并沒有改變。
關鍵我們要重新給壓縮后的線段標記起點和終點。
按照通用的離散化方法。。。。
首先依次讀入線段端點坐標,存于post[MAXN][2]中,post[i][0]存第一條線段的起點,post[i][1]存第一條線段的終點,然后用一個結構題數組line[MAXN]記錄信息,hash[i].v記錄端點坐標,hash[i].line記錄這個點屬于哪條線段(用正負數表示,負數表示起點,正數表示終點)。假如有N條線段,就有2*N個端點。然后將hash數組排序,按照端點的坐標,從小到大排。接著要把線段賦予新的端點坐標了。從左到右按照遞增的次序,依次更新端點,假如2*N個點中,共有M個不同坐標的點,那么線段樹的范圍就是[1,M]。
  1#include<iostream>
  2#include<stdlib.h>
  3#define MAXN 10000
  4#define MAX_UNSIGEN 65536
  5#define mixcolor -1
  6using namespace std;
  7struct seg
  8{
  9    int left,right;
 10    int color;
 11}
;
 12struct structx
 13{
 14    int v;       //端點值
 15    int line;    //屬于哪條線段,-起,+終
 16}
;
 17
 18seg Segtree[MAX_UNSIGEN+2];    //
 19bool colortable[MAXN+1];
 20int post[MAXN][2];            //記錄輸入的poster位置,post[i][0]起點,post[i][0]終點
 21structx hash[2*MAXN+1];        //所有端點,對其排序,相當于一個映射表
 22
 23void buildsegtree(int v,int l,int r)
 24{
 25    
 26    Segtree[v].left=l;
 27    Segtree[v].right=r;
 28    Segtree[v].color=0;
 29    if(l==r) return ; 
 30
 31    int mid=(l+r)>>1// div 2
 32    buildsegtree(v*2,l,mid);
 33    buildsegtree(v*2+1,mid+1,r);
 34}

 35
 36void insertseg(int v,int l,int r,int c)
 37{
 38        if(Segtree[v].left==&& Segtree[v].right==r)
 39        {
 40            Segtree[v].color=c;
 41            return ;
 42        }

 43        //only one color
 44        if(Segtree[v].color != mixcolor )  
 45        {
 46            Segtree[2*v].color=Segtree[v].color;
 47            Segtree[2*v+1].color=Segtree[v].color;
 48            Segtree[v].color=mixcolor;
 49        }

 50        
 51        int mid=(Segtree[v].left + Segtree[v].right) >> 1 ;
 52
 53        if(r<=mid) insertseg(2*v,l,r,c);
 54        else 
 55            if(mid<l) insertseg(2*v+1,l,r,c);
 56        else 
 57        {
 58            insertseg(2*v,l,mid,c);
 59            insertseg(2*v+1,mid+1,r,c);
 60        }

 61}

 62
 63void count(int v ,int l,int r)
 64{
 65    if(Segtree[v].color !=mixcolor ) 
 66    {
 67        colortable[Segtree[v].color]=true;
 68        return ;
 69    }
        
 70    int mid=(Segtree[v].left + Segtree[v].right) >> 1;
 71    if(r<=mid) count(2*v,l,r);
 72    else if(mid<l) count(2*v+1,l,r);
 73        else 
 74        {
 75            count(2*v,l,mid);
 76            count(2*v+1,mid+1,r);
 77        }

 78}

 79
 80int cmp(const void *a,const void *b)
 81{
 82    return ((structx*)a)->- ((structx*)b)->v;
 83}

 84
 85int main()
 86{
 87    int c,n,i,j,cnt,index;    
 88    scanf("%d",&c);
 89    while(c--)
 90    {
 91        scanf("%d",&n);
 92
 93        for(i=0,j=0,index=1;i<n;i++)
 94        {
 95            scanf("%d%d",&post[i][0],&post[i][1]);
 96            hash[j].v=post[i][0];hash[j++].line=-index;
 97            hash[j].v=post[i][1];hash[j++].line=index++;
 98        }

 99        //j==2*n
100        //離散化
101        qsort(hash,j,sizeof(hash[0]),cmp);    
102        post[-hash[0].line-1][0]=1;
103        for(i=1,index=1;i<j;i++)
104        {
105            if(hash[i].v!=hash[i-1].v) index++;
106
107            if(hash[i].line<0)
108                post[-hash[i].line-1][0]=index;
109            else post[hash[i].line-1][1]=index;
110
111        }

112                
113        buildsegtree(1,1,index);
114        for(i=0;i<n;i++)
115            insertseg(1,post[i][0],post[i][1],i+1);
116
117        count(1,1,index);
118        cnt=0;
119        for(i=1;i<=MAXN;i++)
120            if(colortable[i]==true
121            {
122                cnt++;
123                colortable[i]=false;
124            }

125            
126        printf("%d\n",cnt);
127
128    }

129    return 0;
130}

131
posted on 2009-04-17 19:16 wyiu 閱讀(279) 評論(0)  編輯 收藏 引用 所屬分類: POJ
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久在精品线影院精品国产| 国精品一区二区三区| 亚洲精选视频免费看| 欧美激情亚洲一区| 欧美成人精品影院| 亚洲国产精品一区| 美女国产一区| 最新日韩欧美| 亚洲欧美精品中文字幕在线| 午夜视频在线观看一区二区| 久久久久久9| 欧美sm重口味系列视频在线观看| 欧美喷水视频| 国产午夜精品理论片a级大结局 | 久久国产综合精品| 久久久久久久999| 91久久久亚洲精品| 亚洲香蕉伊综合在人在线视看| 欧美一区二区三区四区高清 | 99精品国产一区二区青青牛奶| 亚洲一区二区三区精品动漫| 久久电影一区| 欧美日韩另类字幕中文| 国产欧美一区二区三区另类精品 | 亚洲视频电影在线| 久久精品一区二区三区不卡牛牛 | 欧美日韩一级黄| 激情文学一区| 欧美一区亚洲二区| 亚洲精品一区二区三区不| 久久国产精品免费一区| 欧美午夜电影一区| 91久久综合亚洲鲁鲁五月天| 欧美一区二区三区男人的天堂| 亚洲国产高清在线观看视频| 新狼窝色av性久久久久久| 欧美日韩亚洲一区二| 在线精品在线| 久久精品国产欧美激情| 91久久在线| 欧美福利视频| 亚洲人成人一区二区在线观看 | 亚洲黄色视屏| 久久久国产视频91| 一区二区欧美亚洲| 欧美日韩高清在线一区| 亚洲精品免费在线播放| 欧美成人免费小视频| 欧美在线免费视屏| 国产精品美女午夜av| 亚洲午夜免费福利视频| 欧美激情综合色| 免费视频一区二区三区在线观看| 激情成人亚洲| 老司机精品视频一区二区三区| 亚洲欧美日韩综合国产aⅴ| 欧美三级网页| 亚洲欧美日韩精品| 这里只有精品视频| 国产精品国色综合久久| 亚洲精品美女免费| 亚洲人成网站777色婷婷| 欧美女激情福利| 亚洲欧美日韩一区二区| 在线亚洲观看| 99视频精品全国免费| 欧美日韩日韩| 亚洲影音先锋| 午夜精品婷婷| 国内一区二区在线视频观看 | 亚洲肉体裸体xxxx137| 欧美国产一区二区在线观看| 亚洲精品色图| 亚洲视频1区| 国产精品少妇自拍| 久久综合久久综合这里只有精品 | 国产精品久久久久久久久久ktv | 久久精品国产亚洲aⅴ| 小黄鸭精品aⅴ导航网站入口| 国色天香一区二区| 亚洲国产精品久久久久久女王| 欧美ed2k| 亚洲欧美国产日韩天堂区| 亚洲欧美日韩一区二区在线| 极品中文字幕一区| 亚洲免费成人av| 国产视频精品va久久久久久| 欧美电影打屁股sp| 欧美性大战久久久久| 久久国产精品久久久久久| 久久精品二区三区| 99视频在线观看一区三区| 午夜一级在线看亚洲| 亚洲日本va午夜在线电影| 亚洲尤物精选| 99精品国产高清一区二区| 亚洲欧美韩国| 亚洲啪啪91| 午夜国产精品视频免费体验区| 1024国产精品| 亚洲综合第一页| 99成人在线| 久久久久se| 亚洲一区二区少妇| 浪潮色综合久久天堂| 一区二区三区久久| 久久婷婷麻豆| 久久精品一二三区| 欧美精品三级日韩久久| 久久久人人人| 国产精品日韩一区二区三区| 欧美高清在线视频| 国产一区二区久久| 亚洲一区bb| 一区二区毛片| 欧美电影免费观看网站| 久久这里只精品最新地址| 国产精品美女久久久| 日韩亚洲欧美精品| 亚洲免费av片| 欧美va日韩va| 亚洲黄色三级| 亚洲日本在线观看| 久久一区二区三区av| 久久精品一区中文字幕| 国产精品久久久亚洲一区| 亚洲激情视频网站| 在线精品国产成人综合| 久久色中文字幕| 欧美1区3d| 亚洲二区视频在线| 噜噜噜在线观看免费视频日韩| 久久看片网站| 国产在线观看一区| 欧美在线亚洲一区| 久久久噜噜噜久久狠狠50岁| 国产午夜精品麻豆| 欧美一级久久久| 久久精品国产一区二区三| 国产精品一区二区在线观看| 亚洲免费视频一区二区| 欧美中文字幕精品| 红桃av永久久久| 亚洲电影毛片| 欧美成在线观看| 亚洲国产欧美一区二区三区久久 | 99视频日韩| 亚洲一区高清| 国产欧美一区二区三区沐欲| 欧美在线资源| 欧美激情a∨在线视频播放| 亚洲欧洲另类| 国产精品二区在线观看| 午夜国产精品影院在线观看| 久久婷婷av| 亚洲人成网站999久久久综合| 欧美日韩国产欧美日美国产精品| 一本久久青青| 久久亚洲一区二区| 99re在线精品| 国产精品推荐精品| 久久伊人亚洲| 日韩视频在线你懂得| 久久国产精品亚洲77777| 在线播放亚洲| 国产精品久久久久毛片大屁完整版 | 久久高清国产| 亚洲黄页视频免费观看| 亚洲图片激情小说| 国产日韩欧美三区| 欧美福利视频在线| 欧美一区二区国产| 亚洲国产日韩在线| 欧美一区二区三区日韩视频| 亚洲国产精品一区二区第四页av| 欧美日韩国产首页| 欧美亚洲午夜视频在线观看| 亚洲欧洲精品天堂一级| 亚洲欧美一区二区激情| 亚洲高清不卡av| 国产精品视频专区| 欧美国产一区二区| 久久成人av少妇免费| 99精品99| 亚洲电影观看| 久久久综合网站| 亚洲最快最全在线视频| 国产一区亚洲一区| 国产精品久久久久永久免费观看| 美日韩免费视频| 久久成人久久爱| 亚洲女人天堂av| 99视频精品免费观看| 亚洲国内欧美| 欧美成人一区二区| 久久久久久久久久久一区| 亚洲综合首页| 夜夜嗨av一区二区三区网站四季av | 欧美日韩三级电影在线| 久久精品99国产精品日本|