程式設計之美初賽第一場 樹

2021-09-08 18:02:26 字數 1103 閱讀 2190

時間限制:

4000ms

單點時限:

2000ms

記憶體限制:

256mb

有乙個n個節點的樹。當中點1是根。初始點權值都是0。

乙個節點的深度定義為其父節點的深度+1,。特別的。根節點的深度定義為1。

問完畢全部操作後,各節點的權值是多少。

為了降低巨大輸出帶來的開銷。如果完畢全部操作後。各節點的權值是answer[1..n],請你依照例如以下方式計算出乙個hash值(請選擇合適的資料型別。注意避免溢位的情況)。終於僅僅須要輸出這個hash值就可以。

mod =1000000007; // 10^9 + 7

magic= 12347;

hash =0;

for i= 1 to n do

hash = (hash * magic + answer[i]) mod mod;

endfor

第一行乙個整數t (1 ≤ t ≤ 5)。表示資料組數。

接下來是t組輸入資料。測試資料之間沒有空行。

每組資料格式例如以下:

第一行乙個整數n (1 ≤ n ≤ 105)。表示樹的節點總數。

接下來n - 1行,每行1個數。a (1 ≤ a ≤ n),依次表示2..n節點的父親節點的編號。

接下來乙個整數q(1 ≤ q ≤ 105),表示操作總數。

接下來q行,每行4個整數。u, l, r, delta (1 ≤ u ≤ n, 1 ≤ l ≤ r ≤ n, -109 ≤ delta ≤ 109),代表一次操作。

對每組資料。先輸出一行「case x: 」,x表示是第幾組資料,然後接這組資料答案的hash值。

小資料:1 ≤ n, q ≤ 1000

大資料:1 ≤ n, q ≤ 105

點1的子樹中有1,2,3三個節點。當中深度在2-3之間的是點2和點3。

點2的子樹中有2,3兩個節點。當中沒有深度為1的節點。

所以,執行全然部操作之後,僅僅有2,3兩點的權值新增了1。即答案是0 1 1。再計算相應的hash值就可以。

例子輸入

131

221 2 3 1

2 1 1 1

例子輸出
case 1: 12348

程式設計之美初賽第一場 樹

時間限制 4000ms 單點時限 2000ms 記憶體限制 256mb 有乙個n個節點的樹,其中點1是根。初始點權值都是0。乙個節點的深度定義為其父節點的深度 1,特別的,根節點的深度定義為1。現在需要支援一系列以下操作 給節點u的子樹中,深度在l和r之間的節點的權值 這裡的深度依然從整個樹的根節點...

程式設計之美初賽第一場 樹

時間限制 4000ms 單點時限 2000ms 記憶體限制 256mb 有乙個n個節點的樹,當中點1是根。初始點權值都是0。乙個節點的深度定義為其父節點的深度 1,特別的,根節點的深度定義為1。問完畢全部操作後,各節點的權值是多少。為了降低巨大輸出帶來的開銷,如果完畢全部操作後,各節點的權值是ans...

程式設計之美初賽第一場

時間限制 12000ms 單點時限 6000ms 記憶體限制 256mb a市是乙個高度規劃的城市。可是科技高階發達的地方,居民們也不能忘記運動和鍛鍊,因此城市規劃局在設計a市的時候也要考慮為居民們建造乙個活動中心。方便居住在a市的居民們能隨時開展運動。鍛鍊強健的身心。城市規劃局希望活動中心的位置滿...