#题面
#题目描述
小 A 很喜欢吃东西。
小 A 面前有 份食物,第 份有参数 和 。小 A 可以按照任意顺序吃掉这 份食物。当她吃掉编号为 的食物时,她可以选择将自己的体重乘以 或者将自己的体重加上 。每份食物只能吃恰好一次。
小 A 的初始体重为 ,请求出她吃完 份食物后能达到的最大体重。答案可能很大,你只需要输出其对 取模后的结果。
注意:你需要最大化体重并将该最大值对 取模,而非最大化体重对 取模的结果。
#输入格式
第一行输入一个整数 表示食物的数量。第二行 个整数 ,第三行 个整数 ,表示每份食物的参数。
#输出格式
输出一个整数,表示小 A 可以得到的最大体重对 取模后的结果。
#输入输出样例
样例输入 #1
5
1 2 3 4 5
100 200 300 400 500
样例输出 #1
18060
样例解释 #1
以下方案可以达到最大体重:
- 吃掉第一份食物并选择将体重增加 ,体重变为 ;
- 吃掉第二份食物并选择将体重增加 ,体重变为 ;
- 吃掉第三份食物并选择将体重乘 ,体重变为 ;
- 吃掉第四份食物并选择将体重乘 ,体重变为 ;
- 吃掉第五份食物并选择将体重乘 ,体重变为 。
样例 #2
见附加样例中的 sample/food2.in
与 sample/food2.ans
。
该组样例满足 和特殊性质 E。
样例 #3
见附加样例中的 sample/food3.in
与 sample/food3.ans
。
该组样例满足 和特殊性质 E。
样例 #4
见附加样例中的 sample/food4.in
与 sample/food4.ans
。
该组样例满足 。
样例 #5
见附加样例中的 sample/food5.in
与 sample/food5.ans
。
该组样例满足特殊性质 A。
样例 #6
见附加样例中的 sample/food6.in
与 sample/food6.ans
。
该组样例满足特殊性质 C。
样例 #7
见附加样例中的 sample/food7.in
与 sample/food7.ans
。
该组样例满足特殊性质 D。
样例 #8
见附加样例中的 sample/food8.in
与 sample/food8.ans
。
该组样例满足特殊性质 B。
样例 #9
见附加样例中的 sample/food9.in
与 sample/food9.ans
。
#数据范围与约定
对于 的测试数据,,。
测试点编号 | 特殊性质 | |
---|---|---|
DE | ||
E | ||
AE | ||
E | ||
DE | ||
E | ||
D | ||
无 | ||
BD | ||
B | ||
C | ||
无 | ||
- 特殊性质 A:;
- 特殊性质 B:;
- 特殊性质 C: 在 内独立均匀随机生成;
- 特殊性质 D:;
- 特殊性质 E:。
#思路
容易发现当 时,选择将体重加上 显然是更优的,那么可以先处理一遍这种情况,并更新答案,记为 。
然后剩下的食物都满足 ,此时最多进行一次 操作(令 ,显然 ),设 ( 为剩余食物的集合),分类讨论如下:
- 当不进行 操作时,答案为 。
- 当仅进行 次 操作时,答案为 。
#代码
1 |
|