#S1D11. Day11_绝望的PC
Day11_绝望的PC
题目背景
不知道大家是否还记得前天的题目 Day9_我还是综测糕手。那道题里每条测试数据都包含了一个人名,并且不会重复。实际上最开始编写那道题的题面时,PC 并没有考虑过测试数据的问题。等到题面写完了,开始捏数据,PC 才绝望地意识到:
“我他宝贝的要上哪找 个不重复的人名啊!!!”
在扶额沉思十分钟后,PC 最终决定动用中华文化最古老的秘技:活字乱刷术。简单来说,就是找一些耳熟能详的名字,把每个字都拎出来组成一个列表,然后通过排列组合组成新的 字、 字名字。譬如从 盖可 和 爱莉希雅 中拆出来 ['盖', '可', '爱', '莉', '希', '雅'],然后随机抽取 个字组合成新的名字,例如 可莉;再随机抽取 个字组合成新的名字,例如 盖爱雅。
所以 PC 现在的问题就变成了要找 个不重复的字出来。找是能找,但这个 到底是多少呢?很显然组出来的名字数量会随 的增大而高速上升,如果一昧地加新的字,很可能最后会多出来很多用不上的名字。
还好天无绝人之路, PC 通过这学期学习的 《概率论与数理统计》,成功找到了解决问题的方法,并经过计算得出他需要 个不同的字,能组出来 个不同的名字。那么,如果题目需要的不是 个名字,而是 个呢?
题目描述
PC 总结出了以下规律:如果他有 个不重复的字符,他的程序能排列出 个不同的名字,这里 。试着根据任意的正整数 求出最小的 ,满足 。
值得注意的是,由于需要组合出 个字的名字,所以无论 的值为多少, 最小为 。
输入格式
输入共 行。
第 行 个整数 ,代表有 次询问。
接下来 行每行 个整数 ,代表 PC 需要 个名字。
输出格式
输出 行,每行 个数字 ,代表最少需要 个不同的字可以组合出 个名字,满足 。
值得注意的是,由于需要组合出 个字的名字,所以无论 的值为多少, 最小为 。
3
10000
100000
1
23
48
3
提示
样例中,要计算 个不同的 。其中:
- 当 时,有 ,满足 ,此时 最小。
- 当 时,有 ,满足 ,此时 最小。
值得注意的是,由于需要组合出 个字的名字,所以无论 的值为多少, 最小为 。且为了防止大家出现奇怪的问题,可以悄悄告诉大家 最大只需要取到 即可满足本题的全部要求。
数据规模与约定
对于全部的测试点,保证 ,,。
相关
在下列比赛中: