题目名称 | 3400. [NOI Online 2020 2nd]游戏(民间数据) |
---|---|
输入输出 | noi_online2020_match.in/out |
难度等级 | ★★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 |
|
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:10, 通过率:10% | ||||
|
100 | 0.749 s | 17.43 MiB | C++ |
|
90 | 4.612 s | 10.99 MiB | C++ |
|
40 | 8.832 s | 25.12 MiB | C++ |
|
30 | 13.900 s | 25.12 MiB | C++ |
|
20 | 10.266 s | 25.09 MiB | C++ |
|
20 | 12.213 s | 38.18 MiB | C++ |
|
10 | 0.587 s | 25.38 MiB | C++ |
|
0 | 0.610 s | 12.57 MiB | C++ |
|
0 | 0.835 s | 15.42 MiB | C++ |
|
0 | 14.813 s | 14.24 MiB | C++ |
本题关联比赛 | |||
近5年noip/csp题目回顾 |
关于 游戏(民间数据) 的近10条评论(全部评论) |
---|
noi_online2020_match.in
输出文件:noi_online2020_match.out
简单对比小 A 和小 B 正在玩一个游戏:有一棵包含 n = 2m 个点的有根树(点从 1\sim n 编号),它的根是 1 号点,初始时两人各拥有 m 个点。游戏的每个回合两人都需要选出一个自己拥有且之前未被选过的点,若对手的点在自己的点的子树内,则该回合自己获胜;若自己的点在对方的点的子树内,该回合自己失败;其他情况视为平局。游戏共进行 m 回合。
作为旁观者的你只想知道,在他们随机选点的情况下,非平局回合数的期望值。为了计算这个期望,你决定对于 k=0,1,2,\ldots,m,计算出非平局回合数为 k 的情况数。两种情况不同当且仅当存在一个小 A 拥有的点 x ,小 B 在 x 被小 A 选择的那个回合所选择的点不同。
由于情况总数可能很大,你只需要输出答案对 998244353 取模后的结果。
第一行一个正整偶数 n 表示树的结点数
第二行一个长度为 n 的 01 字符串,第 i 个字符为 0 表示 i 号点被小 A 拥有,否则被小 B 拥有。保证0、1的个数相同。
接下来 n-1 行每行两个正整数 u,v,表示树中的一条边。
共一行以空格隔开的 \frac{n}{2}+1 个整数,第 i 个整数表示 k=i-1 时的答案。
8 10010011 1 2 1 3 2 4 2 5 5 6 3 7 3 8
0 10 10 4 0
NOI Online2020 提高组 第二轮 Task 3