題意: 一開始有n個點 且每個點有其價值
有三個操作
1 選取路徑 x y 並獲得其價值
2 刪除x的價值 也就是放棄x (如果x未選擇就不用刪除)
3 選取x及x的子樹
每次詢問都要輸出獲得的價值總和
三個操作都很簡單
主要是是線段樹有一點不一樣 用字首和可以解決 見**
#includeusingview codenamespace
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;
}
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...