A7501 | 午枫的宝藏
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
午枫历经千辛万苦,终于破译了宝藏密码,打开了宝箱!
宝箱里是很多很多的金币(可以看成无穷多),午枫需要与手下的 $n$ 名水手们分享金币。
根据大嘤帝国的传统,分配宝藏对于船长而言是一件稍不留神就会丧命的苦差事。这是由于,船长需要将每人能分到多少宝藏的决议公布,之后全体船员(包括船长)会投票决定决议是否通过。如果半数及以上船员(包括船长)投票通过,船长就能够安全地执行决议;否则,船长就会被投海杀死,由第 $1$ 顺位继承人继承船长的职位并再次分配,再不通过就继续投海杀死并由第 $2$ 顺位继承人继承,依此类推。
好在经过多日的相处,午枫知道手下的水手各个都是 聪明绝顶 又 贪婪 并且 相互之间如掐脖 的狠人!每个水手都会在 保证自己不被杀死 的前提下 企图获得更大的利益。
现在,午枫想要知道,如何分配给第 $1,2,\cdots,n$ 顺位继承人的金币数量,才能保证自己只需要分出去最少的金币就能保住自己的性命。
宝箱里是很多很多的金币(可以看成无穷多),午枫需要与手下的 $n$ 名水手们分享金币。
根据大嘤帝国的传统,分配宝藏对于船长而言是一件稍不留神就会丧命的苦差事。这是由于,船长需要将每人能分到多少宝藏的决议公布,之后全体船员(包括船长)会投票决定决议是否通过。如果半数及以上船员(包括船长)投票通过,船长就能够安全地执行决议;否则,船长就会被投海杀死,由第 $1$ 顺位继承人继承船长的职位并再次分配,再不通过就继续投海杀死并由第 $2$ 顺位继承人继承,依此类推。
好在经过多日的相处,午枫知道手下的水手各个都是 聪明绝顶 又 贪婪 并且 相互之间如掐脖 的狠人!每个水手都会在 保证自己不被杀死 的前提下 企图获得更大的利益。
现在,午枫想要知道,如何分配给第 $1,2,\cdots,n$ 顺位继承人的金币数量,才能保证自己只需要分出去最少的金币就能保住自己的性命。
输入格式
本题单个测试点内包含多组测试数据。
输入第一行一个正整数 $T$,表示数据组数。
每组数据第一行一个正整数 $n$,表示午枫手下不包括他自己在内的水手数量。
输入第一行一个正整数 $T$,表示数据组数。
每组数据第一行一个正整数 $n$,表示午枫手下不包括他自己在内的水手数量。
输出格式
为了避免输出量过大,输出对每组数据进行压缩。
对于每组数据,假设午枫分配给船长的第 $i$ 顺位继承人的金币数量为 $r_i$,你只需要输出一行一个压缩后的非负整数 $R$:
$$ R = \left( \sum_{i=1}^{n} i \cdot r_i \right) \bmod (10^9+7) $$
可以证明序列 $r_1, r_2, \cdots, r_n$ 唯一。
对于每组数据,假设午枫分配给船长的第 $i$ 顺位继承人的金币数量为 $r_i$,你只需要输出一行一个压缩后的非负整数 $R$:
$$ R = \left( \sum_{i=1}^{n} i \cdot r_i \right) \bmod (10^9+7) $$
可以证明序列 $r_1, r_2, \cdots, r_n$ 唯一。
输入输出样例
输入 #1
2 1 2
输出 #1
0 2
数据范围
对于 $100\%$ 的测试数据,满足:
$1 \le T \le 20$
$1 \le n \le 10^9$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?