清北學堂 三部曲

2022-05-28 11:39:14 字數 1421 閱讀 7980

三部曲

【問題描述】

因為外來的入侵,國王決定在某些城市加派士兵。所有城市初始士兵數量為

0。當城市?被加派了?名士兵時。城市?的所有子城市需要被加派? + 1名士兵。這

些子城市的所有子城市需要被加派? +2名士兵。以此類推。

當然,加派士兵的同時,國王也需要不斷了解當前的情況。於是他隨時可能

詢問以城市 i 為根的子樹中的所有城市共被加派了多少士兵。

你現在是國王的軍事大臣,你能回答出國王的每個詢問麼?

【輸入格式】

第一行,包含兩個整數?,?代表城市數量以及國王的命令的數量。

第二行? −1個整數,表示2− ?號每個節點的父親節點。

接下來的?行,每行代表國王的乙個命令,命令分兩種:

? ? ? 在城市?加入?個士兵

? ? 詢問以城市?為根的子樹中所有士兵數量的和。

【輸出格式】

對於每個?,輸出答案。

【樣例輸入】

7 10

1 1 2 2 5 5

q 1a 2 1

q 1q 2

q 5a 5 0

q 5a 3 1

q 1q 2

【樣例輸出】011

1181014

13【樣例解釋】

無。【資料規模與約定】

對於50%的資料,1 ≤ ? ≤ 1000 1≤ ? 300。

對於100%的資料,1 ≤ ? ≤ 50000 1≤ ? ≤ 100000 1≤ ? ≤ ? 0 ≤ ? ≤

1000。

/*

線段樹+暴力+亂搞 50分

*/#include

#include

#define maxn 50010

using

namespace

std;

struct

link

e[2*maxn];

intn,t,x,y,cnt;

intedge_num[maxn];

intfather[maxn];

long

long

num[maxn];

char opt[3

];void add(int u,int

v);edge_num[u]=cnt++;

e[cnt]=(link);edge_num[v]=cnt++;

}void add(int node,int father,int

delta)

long

long query(int node,int

father)

intmain()

father[

1]=1

;

while (t--)

else

}return0;

}

人生三部曲

人生三部曲 童年沙丁魚罐頭似的公共汽車在曬的發燙的柏油路上緩慢地爬著。我 瘦瘦小小的個子在擁擠的人群中喘不過氣來。還要多久呀?人們煩躁而沉悶的氣氛充斥著整個車廂。忽然,我看見一位打扮入時的西裝人士,正悄悄地把手伸入一位老人的口袋。我第一反應就是有小偷!於是大聲脫口而出,一車人都回頭驚悸地看著我,西裝...

Jmock使用三部曲

import org.jmock.mockery import org.jmock.expectations class publishertest extends testcase execute publisher.publish message verify assert.assert.注意 ...

SoftwareRender三部曲 前言

這個系列主要是介紹如何簡單製作乙個softwarerender,後面會分三篇文章來完成這個系列。在看這個系列之前最好先閱讀之前 遊戲開發3d數學筆記 在這個工程中的所需要的一些數學庫 vector matrix mesh等 都 於之前3d數學系列。當然,這些數學庫使用上比較簡單,如果你對其數學原理不...