题目名称 3327. [FJOI 2016]神秘数
输入输出 number.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2026-03-31加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:2, 通过率:50%
Gravatarsyzhaoss 100 2.125 s 23.85 MiB C++
Gravatarsyzhaoss 30 7.743 s 4.02 MiB C++
关于 神秘数 的近10条评论(全部评论)

3327. [FJOI 2016]神秘数

★★★☆   输入文件:number.in   输出文件:number.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

一个可重复数字集合 $S$ 的神秘数定义为最小的不能被 $S$ 的子集的和表示的正整数。例如 $S=\{1,1,1,4,13\}$,有:$1 = 1$,$2 = 1+1$,$3 = 1+1+1$,$4 = 4$,$5 = 4+1$,$6 = 4+1+1$,$7 = 4+1+1+1$。

$8$ 无法表示为集合 $S$ 的子集的和,故集合 $S$ 的神秘数为 $8$。

现给定长度为 $n$ 的**正整数**序列 $a$,$m$ 次询问,每次询问包含两个参数 $l,r$,你需要求出由 $a_l,a_{l+1},\cdots,a_r$ 所组成的可重集合的神秘数。

【输入格式】

第一行一个整数 $n$,表示数字个数。

第二行 $n$ 个正整数,从 $1$ 编号。

第三行一个整数 $m$,表示询问个数。

【输出格式】

对于每个询问,输出一行对应的答案。

【样例 1 输入】

5
1 2 4 9 10
5
1 1
1 2
1 3
1 4
1 5

【样例 1 输出】

2
4
8
8
8

【数据范围】

对于 $100\%$ 的数据点,$1\le n,m\le {10}^5$,$\sum a\le {10}^9$。