QOJ.ac

QOJ

时间限制: 5 s 内存限制: 1024 MB 总分: 100

#4364. 向上取整函数

统计

Advanced Ceiling Manufacturers (ACM) 正在分析其新型“极度防坍塌天花板”(ICPCs)的特性。一个 ICPC 由 $n$ 层材料组成,每一层都有一个不同的抗坍塌强度值(为一个正整数)。ACM 想要进行的分析是:获取各层的抗坍塌强度值,将它们存储在一棵二叉搜索树中,并检查这棵树的形状是否与整个结构的质量有任何关联。毕竟,为什么不呢?

具体来说,ACM 获取各层的抗坍塌强度值,按照从顶层到底层的顺序,将它们逐一插入到一棵树中。插入一个值 $v$ 的规则如下:

  • 如果树为空,则将 $v$ 作为树的根。
  • 如果树不为空,则将 $v$ 与树的根进行比较。如果 $v$ 较小,则将 $v$ 插入到根的左子树中,否则将 $v$ 插入到右子树中。

ACM 有一组想要通过尝试使其坍塌来分析的天花板原型。它希望将具有相同树形状的天花板原型归为一组,并一起进行分析。

例如,假设 ACM 正在考虑五个各有三层材料的天花板原型,如样例输入 1 所述,并如图 C.1 所示。注意,第一个原型的顶层抗坍塌强度值为 2,中间层为 7,底层为 1。第二个原型的各层抗坍塌强度值分别为 3、1 和 4——然而这两个原型产生了相同的树形状,因此 ACM 将把它们放在一起分析。

给定一组原型,你的任务是确定它们产生了多少种不同的树形状。

图 C.1:样例输入 1 中天花板原型所产生的四种树形状。

输入格式

输入的第一行包含两个整数 $n$ ($1 \le n \le 50$),表示要分析的天花板原型的数量;以及 $k$ ($1 \le k \le 20$),表示每个原型中的层数。

接下来的 $n$ 行描述了这些天花板原型。每一行包含 $k$ 个不同的整数(在 $1$ 到 $10^6$ 之间,包含边界值),这些是天花板原型中各层的抗坍塌强度值,按从顶到底的顺序排列。

输出格式

输出不同树形状的数量。

样例

样例输入 1

5 3
2 7 1
3 1 4
1 5 9
2 6 5
9 7 3

样例输出 1

4

样例输入 2

3 4
3 1 2 40000
3 4 2 1
33 42 17 23

样例输出 2

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.