三部曲
【問題描述】
因為外來的入侵,國王決定在某些城市加派士兵。所有城市初始士兵數量為
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數學系列。當然,這些數學庫使用上比較簡單,如果你對其數學原理不...