「MCOI-02」Build Battle 建筑大师
题目背景
WAPER 爱玩 hypixel(世界上最大的 Minecraft 小游戏服务器) 建筑大师!
提示:在本题中,羊毛属于一种方块。
题目描述
现在 WAPER 准备玩 $q$ 局建筑大师。在第 $i$ 局游戏的开始,WAPER 会选定一个参数 $m_i$,并 **按顺序** 放置 $n$ 个有颜色的羊毛,羊毛颜色的排列如下:
$$1,\ 2,\ ...\ ,\ m_i-1,\ m_i,\ 1,\ 2,\ ...\ ,m_i-1\ ,m_i\ ,\ ...\ (n-1) \ \bmod \ m_i+1$$
例如 $n=7,m=3$ 时,颜色排列如下:
$$1\ ,2,\ 3,\ 1,\ 2,\ 3,\ 1$$
现在 WAPER 准备打破一些方块(可以一个也不打破,也可以全部打破),WAPER 想知道这样可以产生多少种不同的颜色序列。(两个颜色序列不同当且仅当其长度不同或某一位置的羊毛颜色不同)
因为答案太大,所以输出答案对 $10^9+7$ 取模的结果。
(其实就是询问这个序列本质不同的子序列对 $10^9+7$ 取模的结果)
输入输出格式
输入格式
第一行两个整数 $n$ 和 $q$ 代表羊毛数和局数。
第二行 $q$ 个整数 $m_i$ 代表参数。
输出格式
$q$ 行,每行一个整数代表答案。
答案对 $10^9+7$ 取模。
输入输出样例
输入样例 #1
10 6
1 1 4 5 1 4
输出样例 #1
11
11
833
944
11
833
输入样例 #2
1000000 1
114514
输出样例 #2
945636198
说明
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(5 pts)$\ \ $:$n \le 20$,$q=1$。
- Subtask 2(15 pts):$n \le 10^3$,$q=1$。
- Subtask 3(15 pts):$\max\{m_i\} \le 20$,$q=1$。
- Subtask 4(25 pts):$q=1$。
- Subtask 5(40 pts):无特殊限制。
对于 $100\%$ 的数据,$1 \le n,q \le 10^6$,$1 \le m_i \le n$。
#### 说明
Minecraft OI Round 2 B
- Maker:WAPER420
- Tester:灵空
$样例不是出题人写的!!!!!!!!$