1. 程式人生 > >2014-10-5 NOIP模擬賽

2014-10-5 NOIP模擬賽

str 隨機 一個人 保留 有根樹 tree 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模擬賽