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

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>
            美日韩免费视频| 国产精品夜夜嗨| 亚洲激情国产精品| 亚洲欧洲在线一区| 一本久久综合亚洲鲁鲁五月天| 亚洲精品免费在线| 精品91在线| 亚洲国产精品久久久久秋霞不卡| 国产精品啊v在线| 国产精品h在线观看| 欧美日韩三级视频| 国产精品99免费看| 欧美视频在线观看免费网址| 欧美日韩一区二区三区四区五区 | 国产午夜精品一区二区三区欧美| 国产精品一区二区三区久久| 国产一区二区三区四区在线观看| 国产乱码精品1区2区3区| 国产精品永久入口久久久| 国产一区二区三区在线播放免费观看| 国产尤物精品| 日韩视频免费大全中文字幕| 亚洲欧美999| 蜜桃av噜噜一区| 一区二区三区四区蜜桃| 久久精品二区| 国产精品一区视频| 一区二区激情| 亚洲国产精品va在看黑人| 一区二区高清视频| 一区二区三区精品久久久| 亚洲精品一区二区三区蜜桃久 | 136国产福利精品导航网址| 亚洲毛片一区| 久久九九免费视频| 在线综合视频| 国产精品久久久久久户外露出| 欧美一区二区三区视频免费播放| 久久精品色图| 国产精品中文在线| av72成人在线| 一本色道久久综合狠狠躁的推荐| 麻豆成人在线观看| 最新日韩欧美| 亚洲精品日产精品乱码不卡| 久久先锋影音| 亚洲精品中文字幕在线观看| 欧美成人福利视频| 在线一区观看| 国产精品美腿一区在线看| 一区二区三区www| 亚洲美女尤物影院| 欧美国产亚洲精品久久久8v| 国内不卡一区二区三区| 久久综合免费视频影院| 久久只精品国产| 亚洲视频网站在线观看| 亚洲欧美日韩精品久久亚洲区 | 欧美一区二区免费视频| 亚洲欧美国产制服动漫| 午夜国产精品视频| 亚洲欧美日韩人成在线播放| 一片黄亚洲嫩模| 国产精品一区在线观看| 欧美黑人多人双交| 国产精品看片你懂得| 亚洲国产精品国自产拍av秋霞 | 蜜桃av综合| 国产欧美一区二区三区另类精品 | 亚洲网站啪啪| 免费在线观看成人av| 久久久久久电影| 国产精品毛片在线看| 亚洲风情亚aⅴ在线发布| 国产亚洲女人久久久久毛片| 中文av一区二区| 欧美日韩亚洲一区二区三区四区| 免费人成精品欧美精品| 国产在线精品自拍| 亚洲欧美成人综合| 亚洲一区二区三区午夜| 欧美午夜电影在线| 亚洲视频免费在线| 午夜精品久久久久久久久| 欧美日本在线看| 亚洲永久免费av| 亚洲欧美制服中文字幕| 国产欧美日韩在线播放| 亚洲欧美综合国产精品一区| 欧美一区二区三区啪啪| 国产日韩高清一区二区三区在线| 一本色道久久加勒比精品| 国产精品99久久久久久久vr| 欧美日韩成人综合| 一区二区日韩伦理片| 久久国产综合精品| 精品福利电影| 欧美无砖砖区免费| 久久全球大尺度高清视频| 欧美国产日本高清在线| 欧美亚洲综合在线| 一区二区三区福利| 在线视频国产日韩| 亚洲国产免费看| 亚洲国产老妈| 亚洲天堂av综合网| 在线日韩日本国产亚洲| 国产精品国产亚洲精品看不卡15| 性高湖久久久久久久久| 中日韩美女免费视频网站在线观看| 久久久噜噜噜久噜久久| 亚洲欧洲av一区二区三区久久| 亚洲精品美女久久久久| 伊人久久婷婷色综合98网| 欧美视频二区| 欧美一区二区三区啪啪| 中文成人激情娱乐网| 亚洲精品日产精品乱码不卡| 欧美第一黄网免费网站| 欧美二区不卡| 欧美大成色www永久网站婷| 久久女同互慰一区二区三区| 久久久青草婷婷精品综合日韩| 久久精品一区中文字幕| 久久精品论坛| 欧美成人一区在线| 亚洲欧洲一区二区三区| 亚洲裸体在线观看| 午夜激情久久久| 久久国产综合精品| 麻豆av一区二区三区久久| 欧美成人dvd在线视频| 欧美剧在线观看| 国产在线视频欧美| 亚洲天堂视频在线观看| 久久午夜羞羞影院免费观看| 亚洲精选在线观看| 久久久www免费人成黑人精品| 欧美激情自拍| 亚洲电影在线| 久久久久久久999| 一本大道久久a久久综合婷婷| 久久九九精品99国产精品| 欧美日韩激情小视频| 亚洲成人在线免费| 久久精品视频网| 先锋影音久久| 国产精品视频| 亚洲综合不卡| 亚洲开发第一视频在线播放| 先锋资源久久| 国产精品播放| 一区二区三区鲁丝不卡| 国产精品久久久久久久免费软件 | 亚洲精品日韩激情在线电影 | 麻豆成人小视频| 国产日韩欧美自拍| 一区二区三区日韩精品| 免费欧美在线| 女人色偷偷aa久久天堂| 亚洲国产精品一区二区www在线| 性欧美1819性猛交| 亚洲一级一区| 国产精品成av人在线视午夜片| 亚洲国产日韩一区| 亚洲第一精品电影| 欧美国产日韩a欧美在线观看| 亚洲丰满少妇videoshd| 欧美高清影院| 国产日韩成人精品| 亚洲日韩中文字幕在线播放| 欧美一区二区视频在线| 亚洲综合不卡| 国产日韩av高清| 久久欧美肥婆一二区| 亚洲欧美日韩一区在线| 国产精品一区三区| 久久青草欧美一区二区三区| 欧美亚洲一区二区三区| 影音先锋日韩有码| 亚洲国产精品视频| 国产精一区二区三区| 麻豆成人在线观看| 欧美成人一区二区三区片免费| 免费观看一级特黄欧美大片| 一区二区日韩欧美| 久久全国免费视频| 亚洲欧美日韩高清| 美女91精品| 美国成人直播| 国产精品女主播| 久久国产综合精品| 欧美日韩一二区| 欧美88av| 久久精品国产免费观看| 久久成人18免费网站| 日韩一级欧洲| 久久久精品国产免费观看同学| 亚洲一区中文字幕在线观看| 欧美在线视频网站|