Occupation hdu5221 樹鏈剖分

2022-05-01 14:00:08 字數 1926 閱讀 9822

題意:   一開始有n個點  且每個點有其價值

有三個操作

1 選取路徑 x y 並獲得其價值

2 刪除x的價值  也就是放棄x  (如果x未選擇就不用刪除)

3 選取x及x的子樹

每次詢問都要輸出獲得的價值總和

三個操作都很簡單 

主要是是線段樹有一點不一樣  用字首和可以解決  見**

#includeusing

namespace

std;

//input by bxd

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define repp(i,a,b) for(int i=(a);i>=(b);--i)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m)

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define see(x) (cerr<

#define lson l,m,pos<<1

#define rson m+1,r,pos<<1|1

#define inf 0x3f3f3f3f

#define clr(a,v) memset(a,v,sizeof a)typedef pair

pii;

/////////////////////////////////

/const

int n=1e6+10

;int t[n<<2],col[n<<2

],n,m,node[n],w[n],sum[n],le[n],ri[n],a,b,c,pre[n];

void up(int

pos)

void build(int l,int r,int

pos)

int m=(l+r)>>1

;build(lson);build(rson);up(pos);

}void down(int

pos)

}void upsum(int l,int r,int l,int r,int

pos)

int m=(l+r)>>1

;down(pos);

if(l<=m)upsum(l,r,lson);

if(r>m)upsum(l,r,rson);

up(pos);

}void upnode(int x,int l,int r,int

pos)

int m=(l+r)>>1

;down(pos);

if(x<=m)upnode(x,lson);

else

upnode(x,rson);

up(pos);

}int head[n<<1

],pos,id[n],dep[n],son[n],siz[n],top[n],cnt,fa[n];

struct

edge

edge[n

<<1

];void add(int a,intb);

head[a]=pos;

}void dfs1(int x,intf)}

void dfs2(int x,int

topf)

}void upsum(int x,int

y)

if(dep[x]>dep[y])swap(x,y);

upsum(id[x],id[y],

1,n,1);}

void

init()

intmain()

}return0;

}

view code

mysql5 2使用 5 2 使用MySQL資料庫

目前internet上流行的 構架方式是lamp,其中的m即mysql,作為資料庫,mysql以免費 開源 使用方便為優勢成為了很多web開發的後端資料庫儲存引擎。mysql驅動 go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,...

mysql5 2使用 5 2 使用MySQL資料庫

目前internet上流行的 構架方式是lamp,其中的m即mysql,作為資料庫,mysql以免費 開源 使用方便為優勢成為了很多web開發的後端資料庫儲存引擎。mysql驅動 go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,...

5 2 可變引數

5.2 可變引數 lua函式可以接受可變數目的引數,和c語言類似在函式引數列表中使用三點 表示函式有可變的引數。lua將函式的引數放在乙個叫arg的表中,除了引數以外,arg表中還有乙個域n表示引數的個數。例如,我們可以重寫print函式 printresult function print for...