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

ArcTan

dfs
隨筆 - 16, 文章 - 117, 評論 - 6, 引用 - 0
數據加載中……

poj 3468 線段樹

http://poj.org/problem?id=3468

線段數的構造,查詢,修改!
struct node{
   int l,r,m;
   long long sum;//當前區間的和
   long long add;//區間需要加上的數值
}

題意:
      給定n個數字A1,A2,..,An,Q個操作。
      C x y z,把區間x y內的數都加上z
      Q x y,求區間x y內所有數的和。
總結:
      基礎代碼一定要對,調試了半天,最后發現是swap(x,y,t)寫錯了?。。?!
      WA了一次,數據是long long才行,要分析清楚數據范圍!??!

#include <cstdio>
#include 
<cstdlib>
#include 
<cstring>
#include 
<cmath>
#include 
<ctime>
#include 
<cassert>
#include 
<iostream>
#include 
<sstream>
#include 
<fstream>
#include 
<map>
#include 
<set>
#include 
<vector>
#include 
<queue>
#include 
<algorithm>
#define min(x,y) (x<y?x:y)
#define max(x,y) (x>y?x:y)
#define swap(x,y,t) (t=x,x=y,y=t)
#define clr(list) memset(list,0,sizeof(list))
#define LL long long
#define maxn 200005
using namespace std;
struct node{
    
int l,r,m;
    LL sum;
    LL add;
} tree[
2*maxn];
int a[maxn];
LL build(
int l,int r,int root)
{
    tree[root].l
=l;
    tree[root].r
=r;
    tree[root].m
=(l+r)/2;
    tree[root].add
=0;
    
if (l==r)
    {
        tree[root].sum
=a[l];
        
return tree[root].sum;
    }
    
long long sum_l=build(l,(l+r)/2,root*2);
    
long long sum_r=build((l+r)/2+1,r,root*2+1);
    tree[root].sum
=sum_l+sum_r;
    
return tree[root].sum;
}
int insert(int l,int r,int add,int root)
{
    
if (l<=tree[root].l && r>=tree[root].r)
    {
        tree[root].add
+=add;
        tree[root].sum
+=add * (tree[root].r-tree[root].l+1);
        
return 0;
    }
    
if (tree[root].add) //向下更新
    {
        tree[
2*root].sum+=tree[root].add * (tree[root*2].r-tree[root*2].l+1);
        tree[
2*root].add+=tree[root].add;
        tree[
2*root+1].sum+=tree[root].add * (tree[root*2+1].r-tree[root*2+1].l+1);
        tree[
2*root+1].add+=tree[root].add;
        tree[root].add
=0;
    }
    
if (l<=tree[root].m)
        insert(l,r,add,root
*2);
    
if (r>tree[root].m)
        insert(l,r,add,root
*2+1);
    tree[root].sum
=tree[root*2].sum+tree[root*2+1].sum;   //這里回溯啊
    return 0;
}
LL search(
int l,int r,int root)
{
    
if (l<=tree[root].l && r>=tree[root].r)
        
return tree[root].sum;
    
if (tree[root].add)  //向下更新
    {
        tree[
2*root].sum+=tree[root].add * (tree[root*2].r-tree[root*2].l+1);
        tree[
2*root].add+=tree[root].add;
        tree[
2*root+1].sum+=tree[root].add * (tree[root*2+1].r-tree[root*2+1].l+1);
        tree[
2*root+1].add+=tree[root].add;
        tree[root].add
=0;
    }
    LL sum_l
=0,sum_r=0;
    
if (l<=tree[root].m)
        sum_l
=search(l,r,2*root);
    
if (r>tree[root].m)
        sum_r
=search(l,r,2*root+1);
    
return sum_l+sum_r;
}
int main()
{
    
int n,m;
    
int x,y,z;
    
int tmp;
    
char ch;
    scanf(
"%d%d",&n,&m);
    
for (int i=1;i<=n;i++)
        scanf(
"%d",&a[i]);
    build(
1,n,1);

    
for (int i=1;i<=m;i++)
    {
        scanf(
"\n%c",&ch);
        
if (ch=='C')
        {
            scanf(
"%d%d%d",&x,&y,&z);
            
if (x>y)
                swap(x,y,tmp);
            insert(x,y,z,
1);
        }
        
else
        {
            scanf(
"%d%d",&x,&y);
            
if (x>y)
                swap(x,y,tmp);
            printf(
"%I64d\n",search(x,y,1));
        }
    }
    
return 0;
}


posted on 2012-07-25 10:54 wangs 閱讀(419) 評論(0)  編輯 收藏 引用 所屬分類: ACM-數據結構

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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色精品久久| 欧美人牲a欧美精品| 在线亚洲国产精品网站| 夜夜爽www精品| 国产欧美精品在线观看| 久久精品国产精品亚洲| 久久久久久久久久看片| 91久久综合| 一区二区三区 在线观看视频| 欧美午夜www高清视频| 欧美专区亚洲专区| 裸体歌舞表演一区二区| 中文精品视频一区二区在线观看| 在线视频亚洲欧美| 国产有码在线一区二区视频| 欧美激情久久久久久| 欧美三级视频| 麻豆精品视频在线观看| 欧美人在线观看| 久久精品在线播放| 欧美成人四级电影| 久久av一区二区三区漫画| 另类天堂av| 午夜亚洲影视| 欧美大片在线影院| 久久久999精品视频| 欧美日本免费| 久久一区二区三区四区五区| 欧美日韩爆操| 麻豆九一精品爱看视频在线观看免费| 欧美日韩福利在线观看| 久久伊人一区二区| 国产精品美女999| 亚洲国产欧美在线| 国产精品久久久久9999| 欧美黄污视频| 一区二区亚洲| 午夜欧美大尺度福利影院在线看| 日韩一级大片| 久热成人在线视频| 久久精品国产亚洲5555| 国产精品大全| 一区二区高清在线| 日韩视频第一页| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一区二视频| 国产精品麻豆欧美日韩ww| 亚洲精品无人区| 亚洲理伦在线| 欧美激情精品久久久久久变态 | 欧美成人a∨高清免费观看| 久久国产精品99国产| 国产精品久久7| 一二三区精品| 亚洲五月六月| 国产精品九色蝌蚪自拍| 99国内精品久久| 亚洲图色在线| 国产精品激情偷乱一区二区∴| 日韩午夜免费| 亚洲综合欧美日韩| 国产精品爽爽爽| 午夜国产精品视频| 久久不见久久见免费视频1| 国产裸体写真av一区二区| 亚洲一区高清| 久久久久国内| 在线观看av不卡| 免费日韩av片| 亚洲精品欧美激情| 亚洲欧美另类国产| 国产麻豆综合| 欧美一区在线看| 久久亚洲免费| 亚洲人线精品午夜| 欧美日韩成人免费| 亚洲一区二区三区视频| 久久国产精品99精品国产| 激情小说亚洲一区| 欧美激情亚洲| 亚洲欧美国产va在线影院| 久久九九精品99国产精品| 亚洲国产老妈| 国产精品mv在线观看| 欧美一区二区三区的| 欧美电影资源| 亚洲综合日本| 亚洲成人在线观看视频| 欧美日韩精品伦理作品在线免费观看| 亚洲视频成人| 欧美丰满高潮xxxx喷水动漫| 中文精品99久久国产香蕉| 国产伦精品一区二区三区免费| 欧美中文在线免费| 亚洲欧洲日产国产综合网| 亚洲欧美综合网| 亚洲国产一区二区在线| 欧美亚州韩日在线看免费版国语版| 欧美有码在线观看视频| 亚洲国产欧美在线| 久久久久亚洲综合| 亚洲一区一卡| 亚洲国产三级网| 国产一区二区中文| 欧美日韩一区二区在线观看视频| 久久av一区二区三区| 一本久久a久久免费精品不卡| 久久久999精品视频| 中文欧美日韩| 亚洲全部视频| 精品白丝av| 国产九九精品| 欧美性大战久久久久久久蜜臀| 久久深夜福利| 欧美一区二区在线看| 一区二区高清视频在线观看| 亚洲高清成人| 老牛嫩草一区二区三区日本| 欧美一级夜夜爽| 亚洲愉拍自拍另类高清精品| 狠狠色狠狠色综合| 国产免费亚洲高清| 国产精品vvv| 欧美日韩午夜在线| 欧美黄在线观看| 老**午夜毛片一区二区三区| 欧美在线免费观看| 亚洲欧美国产高清va在线播| 99在线精品视频在线观看| 最新亚洲一区| 91久久久久久久久久久久久| 欧美国产欧美亚洲国产日韩mv天天看完整 | 午夜精彩视频在线观看不卡 | 欧美在线视频一区二区三区| 亚洲伊人久久综合| 亚洲一区在线观看免费观看电影高清| 日韩写真在线| 99xxxx成人网| 一本色道久久综合亚洲精品高清 | 欧美一二区视频| 午夜精品视频在线观看一区二区 | 亚洲电影av| 亚洲欧洲一区二区三区在线观看| 在线观看91精品国产入口| 在线免费观看欧美| 亚洲国产91| 日韩视频免费观看| 一区二区三区视频在线看| 宅男噜噜噜66一区二区66| 亚洲性图久久| 久久国产精彩视频| 久久五月天婷婷| 美乳少妇欧美精品| 亚洲国产精品精华液2区45| 亚洲国产精品va在看黑人| 亚洲国产成人久久综合| 亚洲国产日韩综合一区| 亚洲理伦电影| 亚洲天堂av在线免费| 欧美一级大片在线免费观看| 欧美一区二区三区四区夜夜大片| 欧美亚洲一区| 久久综合九色综合欧美狠狠| 免费看亚洲片| 欧美色欧美亚洲另类七区| 国产乱码精品1区2区3区| 国内精品久久久久久久影视麻豆 | 久久久国产成人精品| 欧美激情精品久久久| 在线中文字幕不卡| 久久国产精品网站| 欧美美女bb生活片| 国产日韩一区在线| 亚洲精品久久久久久久久久久久久| 一区二区三区四区蜜桃| 久久精品日韩欧美| 欧美激情一区二区三区全黄 | 久久久之久亚州精品露出| 欧美日韩国产在线播放| 国产欧美一级| 亚洲乱码一区二区| 久久国产精品久久久久久| 欧美韩国在线| 午夜精品久久久久久| 欧美精品久久天天躁| 国产专区综合网| 亚洲一区二区在线视频| 欧美成人精品在线| 欧美亚洲免费在线| 欧美日韩综合另类| 91久久在线播放| 毛片一区二区三区| 午夜精品一区二区三区在线播放| 欧美大片一区二区三区| 国内精品久久久久久久影视蜜臀| 亚洲一区二区三区影院| 亚洲高清一区二区三区|