AT_agc069_d.[AGC069D] Tree and Intervals

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给出两个整数 NN 和素数 PP。

我们有一棵由 NN 个节点组成的树,节点的编号从 11 到 NN。树有 N−1N-1 条边,每条边连接两个节点,记为 aia_i 和 bi (1≤i≤N−1)b_i\ (1 \leq i \leq N-1)。接下来,我们定义 xj (1≤j≤N−1)x_j\ (1 \leq j \leq N-1) 为:

  • 满足 min⁡(ai,bi)≤j<max⁡(ai,bi)\min(a_i, b_i) \leq j < \max(a_i, b_i) 的边数,个数记为 xjx_j。

你的任务是计算可能的 (x1,x2,…,xN−1)(x_1, x_2, \ldots, x_{N-1}) 组合的数量,并输出此数量除以 PP 的余数。

输入格式

输入由以下形式给出:

NN PP

输出格式

输出答案,表示所求数量除以 PP 的余数。

输入输出样例

  • 输入#1

    3 998244353

    输出#1

    3
  • 输入#2

    69 433416647

    输出#2

    243082757

说明/提示

约束

  • 2≤N≤5002 \leq N \leq 500
  • 108≤P≤10910^8 \leq P \leq 10^9
  • PP 是素数

示例解释

对于一个包含 33 个节点的树,总共有 33 种不同的构型,不区分边,仅区分节点。每种构型对应的 (x1,x2)(x_1, x_2) 分别为 (1,1),(2,1),(1,2)(1, 1), (2, 1), (1, 2)。因此,输出的结果应该是 33 对 P=998244353P=998244353 取模的余数。

请计算上述结果并输出。

本翻译由 AI 自动生成

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

首页