采用贪心算法与排序。
假设当前有两个可操作的数,满足 x≥y>1:
给定一个长度为n 的正整数序列a1,a2,…,an。你必须进行k 次操作(若所有元素均为1 时则无法继续,提前停止,即使你还有剩余操作次数。):每次选择一个满足ai>1 的下标i,将ai 减一(ai:=ai−1)。
在上述前提下,最终序列的乘积i=1∏nai 尽可能大。输出该最大乘积对(109+7) 取模的结果。
每个测试文件均包含多组测试数据。第一行输入一个整数T (1≤T≤105) 代表数据组数,每组测试数据描述如下:
保证所有测试中n 的总和不超过4×105。
对于每组数据,输出一个整数,操作后可以得到的序列最大乘积对(109+7) 取模后的结果。
输入
3
3 3
2 2 3
4 2
5 1 3 2
1 100
10
输出
2
18
1
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册