题目描述
到了难得的假期,小白班上组织大家去看电影。但由于假期里看电影的人太多,很难做到让全班看上同一场电影。最后大家在一个偏僻的小胡同里找到了一家电影院,但这家电影院分配座位的方式很特殊,具体方式如下:
电影院的座位共有 个,并被标号为 。每个人买完票后会被随机指定一个座位,具体来说是从 中等概率随机选取一个正整数,设其为 。
如果编号 的座位是空位,则这个座位就分配给此人,否则将 加一,继续前面的步骤;如果不存在编号 的座位,则该人只能站着看电影,即所谓的站票。
小白班上共有 人(包括小白自己),作为数学爱好者,小白想知道全班都能够有座位的概率是多少。
输入格式
本题有多组数据。第一行一个整数 表示数据组数,接下来 行每行两个整数 表示人数和电影院座位数。
输出格式
对于每一组数据数据输出一行两个整数 ,表示答案为 。你需要保证 。
输入输出样例 #1
输入 #1
输出 #1
说明/提示
对于 的数据,,。
题解
本题所问的概率,本质上是合法的指定座位方案数除以总情况数。其中总情况数显然是 ,只要求出符合限制的指定座位方案数即可。
首先,如果人数多于座位数,即 ,是绝对无法达成“都有座位”的,直接特判输出。
如果座位总数够坐,即 ,我们不妨虚构出来一个从座位 到座位 1 的传送门,如果一个人他走到座位 还没有空位置的话,他就可以走到第一个座位,再依次向后找到一个空座位。由于这样构成了一个环,座位的个数一定是够坐的。这样每个人都有座位了。
按照电影院的特殊限制,我们要求的就是没有人穿过传送门的方案数。我们不妨再虚构一个座位 ,现在如果有人走到 没有座位,就会先坐在 ,那么一个方案不合法当且仅当 位置被人坐了,一个方案合法当且仅当 位置没有人坐。
将 个人在长度为 圆环上指定座位的方案数为 。所有人坐完之后,有 个位置是空的。我们可以选择从这些位置断环成链,并把这些位置当做 号座位,于是得到了一个合法方案。
于是答案就是
显然 和 互质,因此只要考虑 和 的 gcd。需要使用高精度和快速幂。