#P14360. 多边形(Polygon)
多边形(Polygon)
多边形(Polygon)
题目描述
小 R 喜欢玩小木棍。小 R 有 根小木棍,第 () 根小木棍的长度为 。
小 X 希望小 R 从这 根小木棍中选出若干根小木棍,将它们按任意顺序首尾相连拼成一个多边形。小 R 并不知道小木棍能拼成多边形的条件,于是小 X 直接将条件告诉了他:对于长度分别为 的 根小木棍,这 根小木棍能拼成一个多边形当且仅当 且所有小木棍的长度之和大于所有小木棍的长度最大值的两倍,即 。
由于小 R 知道了小木棍能拼成多边形的条件,小 X 提出了一个更难的问题:有多少种选择小木棍的方案,使得选出的小木棍能够拼成一个多边形?你需要帮助小 R 求出选出的小木棍能够拼成多边形的方案数。两种方案不同当且仅当选择的小木棍的下标集合不同,即存在 ,使得其中一种方案选择了第 根小木棍,但另一种方案未选择。由于答案可能较大,你只需要求出答案对 取模后的结果。
输入格式
输入的第一行包含一个正整数 ,表示小 R 的小木棍的数量。
输入的第二行包含 个正整数 ,表示小 R 的小木棍的长度。
输出格式
输出一行一个非负整数,表示小 R 选出的小木棍能够拼成一个多边形的方案数对 取模后的结果。
样例输入 #1
5
1 2 3 4 5
样例输出 #1
9
样例输入 #2
5
2 2 3 8 10
样例输出 #2
6
数据范围
对于所有测试数据,保证:
- ;
- 对于所有 ,均有 。
| 测试点编号 | ||
|---|---|---|
| ^ | ||
| ^ | ||
| ^ | ||
| ^ |
知识点与难度
本题涉及的知识点从属于 GESP 六级(动态规划、背包、计数),难度等级:⭐⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 n≤20 / 特殊: 全1 / maxA≤100 |
| 2 | 15 | 9~11 | Hack: n=3全相等 / 无法构成多边形 / 大数值 |
| 3 | 30 | 12~20 | 中规模 n≤500 / 大规模 n≈5000 压力 |
| 4 | 25 | 21~25 | 随机 n=3~5000 回归 |