题目名称 3960. LegendOfAdlez
输入输出 LegendOfAdlez.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarop_组撒头屯 于2024-04-09加入
开放分组 全部用户
提交状态
分类标签
树形DP DP套dp
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarop_组撒头屯 100 0.388 s 78.92 MiB C++
关于 LegendOfAdlez 的近10条评论(全部评论)

3960. LegendOfAdlez

★★★   输入文件:LegendOfAdlez.in   输出文件:LegendOfAdlez.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

你有一棵 $n$ 个节点的树,保证节点 $n$ 为叶子。

每个节点上要么没有钥匙,要么恰好有一把钥匙。特殊的,节点 $n$ 上没有钥匙。(共有 $2^{n-1}$ 种初态)

一些边是上锁的,需要消耗一把钥匙打开,打开后可永久通行。

你将从节点 $1$ 出发,试图到达节点 $n$。求有多少种钥匙的初态,使得无论你如何操作,都能到达目的地。

答案对 $998244353$ 取模。

【输入格式】

第一行一个正整数 $n$。

接下来 $n-1$ 行,每行三个整数 $u,v,c$ 表示一条数边 $(u,v)$。若 $c=0$ 代表边是通行的,否则是上锁的。

【输出格式】

一个整数表示答案。

【样例输入1】

4
1 2 1
2 3 1
3 4 1
1 4 1

【样例输出1】

1

【样例输入2】

10
1 2 1
2 3 0
3 4 1
1 5 1
5 6 1
6 7 1
1 8 1
8 9 1
9 10 0

【样例输出2】

8

【数据规模与约定】

$1\le n\le 5\times 10^3$

【来源】

Topcoder SRM650