AT_agc050_f.[AGC050F] NAND Tree

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一棵树,每个顶点上写有 00 或 11。这棵树有 NN 个顶点,编号为 11 到 NN。对于每个 ii,存在一条连接顶点 aia_i 和顶点 bib_i 的边。顶点 ii 上写的数字为 cic_i。

すぬけ君会对这棵树重复以下操作:

  • 选择一条边进行缩约,将被消去的两个顶点上的数字进行 NAND 运算,并将结果写在新顶点上。

经过 N−1N-1 次操作后,树会只剩下一个顶点。在所有 (N−1)!(N-1)! 种操作顺序中,最后剩下的顶点上写有 11 的方案有多少种?请计算这个答案对 22 取余的结果。

输入格式

输入从标准输入读入,格式如下:

NN a1a_1 b1b_1 :: aN−1a_{N-1} bN−1b_{N-1} c1c_1 c2c_2 ⋯\cdots cNc_N

输出格式

请输出答案。

输入输出样例

  • 输入#1

    4
    1 2
    2 3
    2 4
    0 1 1 0

    输出#1

    0
  • 输入#2

    4
    1 2
    2 3
    3 4
    1 1 0 1

    输出#2

    1
  • 输入#3

    20
    3 15
    1 12
    10 16
    3 19
    5 20
    1 9
    6 13
    14 19
    2 4
    8 11
    12 16
    6 20
    2 17
    16 18
    17 19
    7 10
    16 20
    2 20
    8 20
    1 0 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0

    输出#3

    0

说明/提示

注释

  • NAND 运算的定义如下:NAND(0,0)=NAND(0,1)=NAND(1,0)=1,NAND(1,1)=0NAND(0, 0) = NAND(0, 1) = NAND(1, 0) = 1,\quad NAND(1, 1) = 0。
  • 当缩约连接顶点 ss 和顶点 tt 的边时,要同时去除该边并合并这两个顶点。缩约后的树中,如果合并产生的新顶点与顶点 uu 之间存在边,当且仅当缩约前的树中 ss 与 uu 有边或 tt 与 uu 有边。

数据范围

  • 2≤N≤3002 \leq N \leq 300
  • 1≤ai<bi≤N1 \leq a_i < b_i \leq N
  • 输入描述的图是一棵树。
  • 0≤ci≤10 \leq c_i \leq 1
  • 输入中的所有值均为整数。

样例解释 1

在 66 种操作顺序中,有 44 种情况下最后剩下的顶点上写有 11。因此答案为 4 mod 2=04 \bmod 2 = 0。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页