2014-10-5 NOIP模擬賽
祖孫詢問
(tree.pas/c/cpp)
【問題描述】
已知一棵n個節點的有根樹。有m個詢問。每個詢問給出了一對節點的編號x和y,詢問x與y的祖孫關系。
【輸入格式】
輸入第一行包括一個整數n表示節點個數。
接下來n行每行一對整數對a和b表示a和b之間有連邊。如果b是-1,那麽a就是樹的根。
第n+2行是一個整數m表示詢問個數。
接下來m行,每行兩個正整數x和y。
【輸出格式】
對於每一個詢問,輸出1:如果x是y的祖先,輸出2:如果y是x的祖先,否則輸出0。
【樣例輸入】
10
234 -1
12 234
13 234
14 234
15 234
16 234
17 234
18 234
19 234
233 19
5
234 233
233 12
233 13
233 15
233 19
【樣例輸出】
1
0
0
0
2
【數據規模】
對於30%的數據,n,m≤1000。
對於100%的.據,n,m≤40000,每個節點的編號都不超過40000。
比賽
(mat.pas/c/cpp)
【問題描述】
有兩個隊伍A和B,每個隊伍都有n個人。這兩支隊伍之間進行n場1對1比賽,每一場都是由A中的一個選手與B中的一個選手對抗。同一個人不會參加多場比賽,每個人的對手都是隨機而等概率的。例如A隊有A1和A2兩個人,B隊有B1和B2兩個人,那麽(A1 vs B1,A2 vs B2)和(A1 vs B2,A2 vs B1)的概率都是均等的50%。
每個選手都有一個非負的實力值。如果實力值為X和Y的選手對抗,那麽實力值較強的選手所在的隊伍將會獲得(X-Y)^2的得分。
求A的得分減B的得分的期望值。
【輸入格式】
第一行一個數n表示兩隊的人數為n。
第二行n個數,第i個數A[i]表示隊伍A的第i個人的實力值。
第三行n個數,第i個數B[i]表示隊伍B的第i個人的實力值。
【輸出格式】
輸出僅包含一個實數表示A期望贏B多少分。答案保留到小數點後一位(註意精度)。
【樣例輸入】
2
3 7
1 5
【樣例輸出】
20.0
【數據規模】
對於30%的數據,n≤50。
對於100%的.據,n≤50000;A[i],B[i]≤50000。
數字
(num.c/cpp/pas)
【問題描述】
一個數字被稱為好數字當他滿足下列條件:
1. 它有2*n個數位,n是正整數(允許有前導0)。
2. 構成它的每個數字都在給定的數字集合S中。
3. 它前n位之和與後n位之和相等或者它奇數位之和與偶數位之和相等
例如對於n=2,S={1,2},合法的好數字有1111,1122,1212,1221,2112,2121,2211,2222這樣8種。
已知n,求合法的好數字的個數mod 999983。
【輸入格式】
第一行一個數n。
接下來一個長度不超過10的字符串,表示給定的數字集合。
【輸出格式】
一行一個數字表示合法的好數字的個數mod 999983。
【樣例輸入】
2
0987654321
【樣例輸出】
1240
【數據規模】
對於20%的數據,n≤7。
對於100%的.據,n≤1000,|S|≤10。
2014-10-5 NOIP模擬賽