Codecraft-18 and Codeforces Round 458 (Div. 1 + Div. 2, combined)
H
Ember and Storm's Tree Game
Codeforces
3400
原题
← G→
翻译中…

Ember and Storm play a game. First, Ember picks a labelled tree $*T*$ of $*n*$ vertices, such that the degree of every vertex is at most $*d*$. Then, Storm picks two distinct vertices $*u*$ and $*v*$ in this tree and writes down the labels of the vertices in the path from $*u*$ to $*v*$ in a sequence $*a*_{1}, *a*_{2}... *a*_{*k*}$. Finally, Ember picks any index $*i*$ ($1 ≤ *i* < *k*$) in the array. Now he performs one of the following two operations exactly once:

翻译中…
  • flip the subrange $[*i* + 1, *k*]$ and add $*a*_{*i*}$ to it. After this, the sequence becomes $*a*_{1}, ... *a*_{*i*}, *a*_{*k*} + *a*_{*i*}, *a*_{*k* - 1} + *a*_{*i*}, ... *a*_{*i* + 1} + *a*_{*i*}$
  • negate the subrange $[*i* + 1, *k*]$ and add $*a*_{*i*}$ to it. i.e., the array becomes $*a*_{1}, ... *a*_{*i*}, - *a*_{*i* + 1} + *a*_{*i*}, - *a*_{*i* + 2} + *a*_{*i*}, ... - *a*_{*k*} + *a*_{*i*}$
翻译中…

Ember wins if the array is monotonically increasing or decreasing after this. Otherwise Storm wins.

翻译中…

The game can be described by the tuple $(*T*, *u*, *v*, *i*, *op*)$ where $*op*$ is «flip» or «negate» depending on the action Ember chose in the last turn. Find the number of tuples that can occur if Ember and Storm play optimally. When they play optimally, if there are multiple moves by which they are guaranteed to win, then they may play any of the winning moves. Otherwise, if someone loses no matter what they play, then they may play any of the possible moves.

翻译中…

Report the answer modulo $*m*$.

翻译中…

Input

翻译中…

The input consists of a single line containing three integers $*n*$, $*d*$ and $*m*$ ($2 ≤ *n* ≤ 200, 1 ≤ *d* < *n*, 1 ≤ *m* ≤ 2·10^{9}$).

翻译中…

Output

翻译中…

Print a single number  — the number of possible tuples if Ember and Storm play as described, modulo $*m*$.

翻译中…

Note

翻译中…

In the first sample case, there is only one possible tree. There are two possible paths, $1$ to $2$ and $2$ to $1$. For both paths, $*i*$ can only be $1$, and $*op*$ can take both possibilities. Therefore, the answer is $4$.

翻译中…

In the second sample, there are no possible trees.

翻译中…

In the third sample, there are three possible trees.

翻译中…

样例

Input #1
2 1 1000000007
Output #1
4
InputCopy OutputCopy
Input #2
3 1 250
Output #2
0
InputCopy OutputCopy
Input #3
3 2 100
Output #3
36
InputCopy OutputCopy
题目信息
题号
914H
时间限制
3 s
内存限制
512 MB
标签
组合数学
动态规划
博弈论
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。