编程题
### 问题描述 在遥远的南极有一座通天巨塔,这座塔一共有 $n+1$ 层。其中第一层有 $2^n$ 个元素,每向上一层,该层的元素数量便减半,直到第 $n+1$ 层剩下一个元素。每一层的元素是由下面一层的元素两两配对相乘得来的。例如,塔的第一层元素为 $[1,5,2,3]$,那么第二层即为 $[1 \times 5,2\times 3] = [5,6]$,第三层为 $[5 \times 6] = [30]$。 这座塔第一层的元素也处在不断变动之中。给出 $q$ 个询问,每个询问 $x,v$ 代表把塔的第一层中第 $x$ 个元素(下标从 $1$ 开始)的值修改为 $v$。你需要求出每次修改之后,这座塔第 $n+1$ 层的元素的值。由于答案可能很大,你需要输出答案对 $10^9 + 7$ 取模后的结果。 ### 输入格式 第一行两个整数 $n,q \space (1 \leq n \leq 16,1 \leq q \leq 10^5)$,代表这是一座 $n+1$ 层高的塔以及询问的个数。 第二行 $2^n$ 个整数 $a_i \space (1 \leq a_i \leq 10^9)$,代表这座塔第一层的元素。 接下来 $q$ 行,每行两个整数 $x,v \space (1 \leq x \leq 2^n,1 \leq v \leq 10^9)$,代表修改的位置和修改的值。 ### 输出格式 输出 $q$ 行,每行一个整数,代表该次询问后,塔顶元素的值。答案对 $10^9 + 7$ 取模。 ### 样例输入 ``` 2 2 1 5 2 3 1 1 3 6 ``` ### 样例输出 ``` 30 90 ```
查看答案
赣ICP备20007335号-2