#31106. 原子(atom)
原子(atom)
题目背景
根据玻尔理论,电子只能在特定的轨道上运动,因此,原子的能量也只能取一系列特定的值,这些量子化的能量值叫做能级,能量最低的状态叫做基态,其他的状态叫做激发态。
小 Z 最近受到了高中物理的毒打,他知道,处于第 能级(基态为第一能级)的原子向下跃迁时理论上能辐射出 种不同能量的光子。而同时身为 OIer 的他在某一天突发奇想:如果一个原子可以多次跃迁,那么最少需要总共多少个原子,才能保证所有 种能级对都被跃迁过至少一次呢?
小 Z 将问题发给了 YeahPotato 和你,你需要在 YeahPotato 口胡完之前写出代码。
题目描述
给定 。你需要准备尽量少的原子,它们初始都处于第 能级。对于一个第 能级的原子,你可以控制它向第 中的某个能级跃迁。原子可以跃迁任意次,且最终不一定要到达基态。
要求每种形如“从第 能级向第 能级跃迁”()的情况都至少出现一次。
输入格式
一行一个正整数 。
输出格式
第一行输出一个整数 ,表示最少需要几个原子。
接下来 行每行表示一个原子的操控过程,第一个整数 表示当前原子的跃迁次数,接下来 个正整数 依次表示每次跃迁降低的能级数,你需要保证 。例如,,那么这个原子的能级变化为 。
你需要保证 。可以证明存在一组方案满足该条件且使用最少的原子。
3
2
2 1 1
1 2
4
4
3 1 1 1
2 2 1
2 1 2
1 3
附加样例
数据范围与提示
在一个测试点中,如果你正确输出了最少的原子数,可以得到该测试点 的分数。如果你正确输出了最少的原子数和任意一个满足所有条件的方案,可以得到该测试点 的分数。否则无法得分。
注意,即使你只希望获得 的分数,也需要输出 行合法的方案,也就是说,当且仅当你输出的方案不能覆盖所有 种情况,但满足其他所有格式条件,你才能获得 的分数。一个推荐的方式是输出 行 。
| 测试点编号 | |
|---|---|
对于 的数据,。
提示
所有测试点的输入 互不相同。
本题输出量较大,请使用较快的输出方式。