线段树是小 最喜欢的数据结构,它能高效地解决许多实际问题。
给定一个正整数 ,小 构建出一棵下标属于整数区间 的线段树:
初始线段树只有一个结点 。 对于结点 ,若 ,则令 ( 表示不超过 的最大整数),小 对这个结点建出两个子结点 、。 小 定义了一个函数 ,表示用若干个线段树结点不重不漏地覆盖区间 ,则使用的线段树结点个数的最小值。
小 尝试使用这棵线段树解决某个复杂问题,并想要粗略地评估这棵线段树的性能。
具体来说,区间 有 个不同的子区间,如果小 从这 个子区间中等概率随机地选取一个,将其记为 ,则小 认为 的期望值可用于评估此线段树的性能。
小 想请你帮他计算出 的期望值与 的乘积对 取模的结果,可以发现此结果一定是一个整数。
输入
第一行一个正整数 表示数据组数。
接下来 行,其中第 行一个正整数 表示第 组数据。
输出
行,第 行一个整数表示第 组数据的答案。
样例
标准输入 复制文本 |
1 3 |
标准输出 复制文本 |
7 |
提示
,,,,,,故 的期望 。
来源
THUPC 2021 初赛