AT_past17_f.構文木
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一棵 N 个结点的二叉树,编号为 1 到 N。根结点为 1 号结点,对于第 i 个结点(2≤i≤N),其父亲为 pi。每个结点的子结点数要么为 0,要么为 2。
第 i 个结点上写有 Si。Si 可以是一个整数,也可以是一个字符。如果该结点是叶子结点,则 Si 是一个整数;否则,Si 为“+”或“x”。
你会不断重复下面两种操作中的任意一个,知道无法再进行为止:
- 选择一个写有“+”的结点,其两个子结点上都写有整数。设这两个整数为 a 和 b。将该结点上的“+”替换为 a+b,并删除这两个子结点。
- 选择一个写有“x”的结点,其两个子结点上都写有整数。设这两个整数为 a 和 b。将该结点上的“x”替换为 a×b,并删除这两个子结点。
最终,树上只会剩下一个结点且上面写有一个整数。请输出这个整数对 998244353 取模的结果。(可以证明,无论操作顺序如何,最终结果唯一。)
输入格式
输入按下列格式给出:
N p2 p3 … pN S1 S2 … SN
输出格式
输出答案。
输入输出样例
输入#1
5 1 1 2 2 + x 3 2 5
输出#1
13
输入#2
7 1 2 1 4 4 2 x + 31415 + 92653 58979 32384
输出#2
689770791
说明/提示
样例解释 1
通过以下步骤,最终会剩下一个结点,上面写着 13,因此答案为 13。
- 选择结点 2,将其“x”替换为 2×5=10,并删除结点 4 和 5。
- 选择结点 1,将其“+”替换为 10+3=13,并删除结点 2 和 3。
样例解释 2
请注意最后输出时需要对 998244353 取模。
约束条件
- 1≤N≤2×105
- 1≤pi≤i−1,对于 2≤i≤N
- 每个结点在 p2,p3,…,pN 中出现次数要么为 0 次要么为 2 次。
- Si 满足:
- 如果第 i 个结点是叶子结点,Si 是 1 到 108 之间的一个整数;
- 如果第 i 个结点不是叶子结点,Si 为“+”或“x”。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?