QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 128 MB Total points: 100

#16026. 明明的烦恼

Statistics

自从明明学了树结构,他对奇形怪状的树产生了浓厚的兴趣。在画了一棵又一棵各种各样的树后,他想到了一个问题:给定 $n$ 个标号为 $1$ 到 $n$ 的点,并允许在两点之间任意连线,要求最终连成一棵含 $n$ 个点的树,总共能画出多少棵不同的树呢?在着手解决这个问题的时候,他又想到另一个更一般的问题:给定 $n$ 个标号为 $1$ 到 $n$ 的点以及某些点最终的度数,并允许在两点之间任意连线,要求最终连成一棵含 $n$ 个点的树且树中各点的度满足上述要求,总共能画出多少棵不同的树呢?

明明思考了很久,也只会手算一些简单的情况,由于初学程序设计,他不知道如何写个程序来帮他解决这个问题。所以求助于准备参加 NOI2008 的你,请你帮他解决这个问题。

输入格式

第一行包含一个整数 $n$,表示树中的结点数,接下来的 $n$ 行依次表示结点 $1$ 到结点 $n$ 最终应该具有的度数,第 $i+1$ 行表示结点 $i$ 最终应该具有的度数 $D_i$,若第 $i$ 行为 $-1$,则表示对结点 $i$ 的度数没有要求。输入数据保证 $0 < n\le 1000$,$-1\le D_i < n $。

输出格式

仅包含一个整数,表示可以画出多少棵不同的树,若无解则输出 $0$。

样例数据

样例 1 输入

3
1
-1
-1

样例 1 输出

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.