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

The Fourth Dimension Space

枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

HDOJ 1698 Just a Hook 線段樹

題目的意思是給你一個數組,大小是N,初始的時候,a[1-N]均為1,然后有Q個操作,每次操作修改某個區間中的值,求最后整個區間1-N的和。線段樹解決

#include<iostream>
using namespace std;

int const maxn=100100;

struct node
{
    
int n;
    
int l,r;
}
tree[maxn*4];

void build(int l,int r,int i)
{
    tree[i].l
=l;
    tree[i].r
=r;
    
if(l==r)
        
return;

    
int mid=(l+r)>>1;
    build(l,mid,i
*2);
    build(mid
+1,r,i*2+1);
}


void update(int l,int r,int n,int i)
{
    
if(l==tree[i].l&&r==tree[i].r)
    
{
        tree[i].n
=n;
        
return ;
    }

    
if(l>r)
        
return ;
    
int nn=tree[i].n;
    
if(tree[i].n!=0)
    
{
        
if(l!=tree[i].l||r!=tree[i].r)
        
{
            
            
int mid=(tree[i].l+tree[i].r)>>1;
            
if(r<=mid)
            
{
                update(l,r,n,i
*2);
                update(tree[i].l,l
-1,nn,i*2);
                update(r
+1,mid,nn,i*2);
                update(mid
+1,tree[i].r,nn,i*2+1);
            }

            
else if(l>mid)
            
{
                update(l,r,n,i
*2+1);
                update(r
+1,tree[i].r,nn,i*2+1);
                update(mid
+1,l-1,nn,i*2+1);
                update(tree[i].l,mid,nn,i
*2);

            }

            
else
            
{
                update(l,mid,n,i
*2);
                update(mid
+1,r,n,i*2+1);
                update(tree[i].l,l
-1,nn,i*2);
                update(r
+1,tree[i].r,nn,i*2+1);
            }

            
        }

        tree[i].n
=0;
    }


    
else if(tree[i].n==0)
    
{
        
if(l!=tree[i].l||r!=tree[i].r)
        
{
            
int mid=(tree[i].l+tree[i].r)>>1;
            
if(r<=mid)
                update(l,r,n,i
*2);
            
else if(l>mid)
                update(l,r,n,i
*2+1);
            
else
            
{
                update(l,mid,n,i
*2);
                update(mid
+1,r,n,i*2+1);
            }

        }

    }

}



int Que(int l,int r,int i)
{
    
int ans=0;
    
if(tree[i].l==l&&tree[i].r==r&&tree[i].n!=0)
    
{
        ans
=(r-l+1)*tree[i].n;
        
return ans;
    }

    
else
    
{
        
int mid=(tree[i].l+tree[i].r)>>1;
        
if(r<=mid)
            ans
= Que(l,r,i*2);
        
else if(l>mid)
            ans
= Que(l,r,i*2+1);
        
else
             ans
=Que(l,mid,i*2)+Que(mid+1,r,i*2+1);
        
return ans;
    }

}




int main()
{
    
int ca;
    scanf(
"%d",&ca);
    
int t=0;
    
while(ca--)
    
{
        t
++;

        
int n;
        scanf(
"%d",&n);
        build(
1,n,1);
        tree[
1].n=1;
        
int q;
        scanf(
"%d",&q);
        
int i;
        
for(i=1;i<=q;i++)
        
{
            
int a,b,c;
            scanf(
"%d%d%d",&a,&b,&c);
            update(a,b,c,
1);
        }

        printf(
"Case %d: The total value of the hook is %d.\n",t,Que(1,n,1));
    }

    
return 0;
}

發現我現場寫線段樹的能力太差,以后這種東西一定要能夠手寫,這題要好好總結一下。恩。東西學的多了,不一定是好事,對于靈活的東西一定要做到非常熟練,否則比賽的時候會很慢的。
#include<iostream>
using namespace std;
int const maxn=100100;

struct node
{
    
int n;
    
int l,r;
}
tree[maxn*4];

void build(int l,int r,int i)
{
    tree[i].l
=l;
    tree[i].r
=r;
    tree[i].n
=1;
    
if(l==r)
        
return;

    
int mid=(l+r)>>1;
    build(l,mid,i
*2);
    build(mid
+1,r,i*2+1);
}


void update(int l,int r,int n,int i)
{
    
int nn=tree[i].n;
    
if(l==tree[i].l&&r==tree[i].r)
    
{
        tree[i].n
=n;
        
return ;
    }

    
if(tree[i].n!=0)
    
{
        tree[i
*2].n=tree[i].n;
        tree[i
*2+1].n=tree[i].n;
        tree[i].n
=0;
    }

    
int mid=(tree[i].l+tree[i].r)>>1;
    
{
        
if(r<=mid)
            update(l,r,n,i
*2);
        
else if(l>mid)
            update(l,r,n,i
*2+1);
        
else
        
{
            update(l,mid,n,i
*2);
            update(mid
+1,r,n,i*2+1);
        }

    }

    
}



int Que(int l,int r,int i)
{
    
int ans=0;
    
if(tree[i].l==l&&tree[i].r==r&&tree[i].n!=0)
    
{
        ans
=(r-l+1)*tree[i].n;
        
return ans;
    }

    
else
    
{
        
int mid=(tree[i].l+tree[i].r)>>1;
        
if(r<=mid)
            ans
= Que(l,r,i*2);
        
else if(l>mid)
            ans
= Que(l,r,i*2+1);
        
else
            ans
=Que(l,mid,i*2)+Que(mid+1,r,i*2+1);
        
return ans;
    }

}




int main()
{
    
int ca;
    scanf(
"%d",&ca);
    
int t=0;
    
while(ca--)
    
{
        t
++;

        
int n;
        scanf(
"%d",&n);
        build(
1,n,1);
        tree[
1].n=1;
        
int q;
        scanf(
"%d",&q);
        
int i;
        
for(i=1;i<=q;i++)
        
{
            
int a,b,c;
            scanf(
"%d%d%d",&a,&b,&c);
            update(a,b,c,
1);
        }

        printf(
"Case %d: The total value of the hook is %d.\n",t,Que(1,n,1));
    }

    
return 0;
}

posted on 2010-07-17 11:42 abilitytao 閱讀(280) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一区二区三区在线看| 亚洲综合二区| 欧美国产精品中文字幕| 亚洲国产日韩精品| 亚洲高清在线观看一区| 欧美激情久久久| 亚洲图片激情小说| 午夜精品久久| 亚洲国产精品va在看黑人| 亚洲高清不卡| 国产精品看片你懂得| 久久精品国产999大香线蕉| 欧美在线亚洲| 亚洲剧情一区二区| 亚洲视频在线观看免费| 黄色精品一区| 亚洲精品一区二区三区福利| 国产精品视频福利| 欧美成年人在线观看| 欧美日韩另类综合| 久久亚洲不卡| 欧美日韩在线视频观看| 久久久999精品免费| 欧美大片一区| 久久国产精品99国产| 老司机久久99久久精品播放免费 | 欧美精品亚洲二区| 性欧美大战久久久久久久免费观看| 欧美一区二视频在线免费观看| 亚洲国产99| 亚洲永久字幕| 日韩午夜在线视频| 欧美一区二区三区成人| 99ri日韩精品视频| 久久激情五月激情| 先锋影音一区二区三区| 欧美a级片网| 久久精品中文字幕一区| 欧美日韩免费一区| 欧美黄网免费在线观看| 国产精品久久久久免费a∨| 亚洲第一网站| 狠狠色综合日日| 亚洲综合第一页| 在线亚洲电影| 欧美另类在线播放| 欧美成人精品h版在线观看| 国产毛片一区二区| 亚洲视频精品在线| 这里只有精品在线播放| 美女尤物久久精品| 久久免费精品日本久久中文字幕| 欧美视频免费| 亚洲精品欧美激情| 亚洲精品日韩欧美| 美女国产一区| 久久综合五月天婷婷伊人| 国产精品综合视频| 亚洲女人av| 欧美亚洲一区| 国产精品丝袜久久久久久app | 欧美一区二区在线观看| 欧美日韩一区高清| 一本不卡影院| 亚洲午夜激情网站| 欧美色大人视频| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久大综合网| 久久五月天婷婷| 一区二区在线观看av| 久久精品1区| 欧美高清视频| 亚洲精品欧美一区二区三区| 免费一级欧美片在线播放| 亚洲国产精品精华液网站| 最新亚洲一区| 欧美日韩高清不卡| 一区二区三区免费看| 午夜国产一区| 红桃视频亚洲| 欧美电影免费观看大全| 亚洲精品一二三| 午夜精品久久久久久久男人的天堂 | 亚洲少妇在线| 欧美中文字幕在线视频| 在线成人激情| 欧美激情精品久久久久久免费印度 | 亚洲精品一二三区| 欧美性一二三区| 亚洲欧美日韩综合一区| 另类尿喷潮videofree| 亚洲黄色成人| 国产精品福利久久久| 欧美亚洲专区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 六月天综合网| 夜夜嗨av一区二区三区四区| 久久国产精品99国产精| 亚洲电影专区| 国产精品v片在线观看不卡| 欧美在线观看视频| 亚洲成色777777在线观看影院| 一区二区国产日产| 国外视频精品毛片| 欧美日韩精品系列| 欧美专区亚洲专区| 亚洲国产精品女人久久久| 亚洲欧美日韩天堂| 91久久精品美女| 国产乱码精品| 欧美精品亚洲精品| 久久九九热re6这里有精品| 亚洲日韩视频| 欧美福利视频在线| 久久精品国产亚洲a| 亚洲色诱最新| 亚洲人午夜精品| 国产亚洲福利一区| 欧美系列亚洲系列| 欧美成人情趣视频| 久久久777| 亚洲欧美国产精品专区久久| 亚洲日本视频| 欧美黄色一区| 美女黄网久久| 久久成人精品一区二区三区| 亚洲图片激情小说| 99国产精品国产精品久久| 一区二区亚洲精品国产| 国产日韩欧美视频| 国产精品一区在线观看| 欧美三级日韩三级国产三级| 欧美激情在线观看| 你懂的国产精品| 久久婷婷国产综合国色天香| 欧美亚洲视频| 欧美一区二区三区的| 亚洲一区二区黄色| 亚洲五月六月| 亚洲一区二区三区四区五区午夜| 亚洲精品无人区| 亚洲精品久久久久久久久久久| 欧美国产日韩a欧美在线观看| 美女免费视频一区| 美日韩精品视频| 欧美国产精品劲爆| 欧美国产一区视频在线观看| 欧美成人dvd在线视频| 美女精品在线观看| 欧美激情第1页| 亚洲第一黄色| 亚洲国产片色| 日韩视频不卡| 亚洲一区二区三区欧美| 亚洲伊人久久综合| 午夜精品影院在线观看| 久久精品国产久精国产爱| 久久精品免费电影| 欧美 日韩 国产一区二区在线视频| 久久伊人一区二区| 欧美精品一卡| 国产精品每日更新| 国产欧美一区二区精品忘忧草 | 国产精品成人v| 国产精品一卡| 韩国一区电影| 亚洲精品免费网站| 99精品热视频| 午夜精品999| 久久全球大尺度高清视频| 欧美国产视频日韩| 夜夜嗨av一区二区三区免费区| 亚洲免费在线观看| 久久久久免费观看| 欧美另类视频在线| 国产伦精品一区二区三区免费 | 欧美色视频一区| 国产一区二区按摩在线观看| 亚洲国产女人aaa毛片在线| 宅男噜噜噜66一区二区66| 久久精品99无色码中文字幕 | 久久激情视频久久| 亚洲第一成人在线| 亚洲欧美日韩久久精品| 免费短视频成人日韩| 国产精品网站在线观看| 亚洲激情综合| 久久黄色小说| 日韩午夜在线| 美女图片一区二区| 国产欧美视频一区二区三区| 亚洲精品一区二区三区蜜桃久| 欧美影院成人| 一本色道久久88精品综合| 久久久久一区二区三区| 国产精品亚洲成人| 一区二区三区精品| 欧美福利视频在线| 久久精品1区| 国产精品一区视频网站|