牛客小白月賽24 I 求和

2021-10-05 05:25:51 字數 1483 閱讀 6480

題目鏈結

已知有 n

nn 個節點,有 n−1

n-1n−

1 條邊,形成乙個樹的結構。

給定乙個根節點 k

kk,每個節點都有乙個權值,節點i的權值為 v

iv_i

vi​ 。

給 m

mm 個操作,操作有兩種型別:

第一行給出三個正整數 n,m

,k

n,m,k

n,m,

k,表示樹的節點數、操作次數、和這棵樹的根節點.

第二行給出 n

nn 個正整數,第 i

ii 個正整數表示第 i

ii 個節點的權值 val

ival_i

vali

​下面 n−1

n-1n−

1 行每行兩個正整數 u,v

u,vu,

v,表示邊的兩個端點

接下來 m

mm 行,每行給出乙個操作

對於每個型別為 2 的操作,輸出一行乙個正整數,表示以 a

aa 為根的子樹的所有節點的權值和

5 6 1

1 2 3 4 5

1 31 2

2 42 5

1 2 10

1 3 10

1 4 5

1 5 1

2 32 2

13

27

模板題,求樹的 dfs

dfsdf

s 序,然後用樹狀陣列或者線段樹維護就行,這題要選乙個好的模板(我那個板子就一直t,真的吐了?),把初始化更新放在 dfs

dfsdf

s 裡面減少耗時,ac**如下:

#include

using

namespace std;

typedef

long

long ll;

const

int n=

1e6+5;

int n,m,k,x,y,op,s,tot=

0,in[n]

,out[n]

,a[n]

;ll t[n]=;

intlowbit

(int x)

void

update

(int i,

int x)

}ll sum

(int i)

return res;

}vector<

int>g[n]

;void

dfs(

int u,

int fa)

out[u]

=tot;

}int

main()

dfs(s,0)

;while

(m--

)else

}return0;

}

牛客小白月賽24 題解

牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...

牛客的小白月賽24補題

沒注意負數取模 呀呀呀呀,打腦殼 保證取模後的結果為正數 x mod mod mod 思路1.挨個嘗試肯定超時 2.就是把平方項展開 a2 b2 2ab 每個平方項的出現次數n 1次 每個2ab形式的和 最後一定注意取余為正數 戳我試試看 include include include includ...

I 排名 牛客小白月賽3

題目描述 cwbc和xhrlyb都參加了sdoi2018,他們特別關心自己的排名。我們定義每一場比賽每位選手的標準分為它的分數乘以滿分再除以比賽中選手所獲得的最高分。noip2017的滿分為600分,sdoi2018每一天的比賽滿分均為300分。我們定義總分為noip2017的標準分的25 加上sd...