1. 程式人生 > >20181031膜你賽

20181031膜你賽

1 乘

時間限制: 2s
空間限制: 256MB

1.1 題目描述

你有一個正整數 \(a\) , 有 \(q\) 次詢問, 每次給定一個正整數 \(b_i\)
, 求 \(a^{b_i}\) 的值.
由於答案可能很大, 你只需要輸出答案對 \(p\) 取模的結果。
又由於詢問可能很多, 給定一個引數 \(k\), 你只需要輸出對於所有 \(k\) 的整數倍 \(i(0 < i ≤ q)\) , 第一
次詢問到第 \(i\) 次詢問的結果的異或和.
為了防止輸入檔案過大, 每次詢問的值以以下方法生成:
\(b_i\) 為第 \(i\) 次詢問的值, 給定 \(b0, l, m, c,i > 0\)

時,\(b_i\) 滿足 \(b_i = (m ∗ b_i−1 + c)mod l\)

1.2 輸入格式

第一行四個正整數 \(a, p, q, k\).
第二行四個正整數 \(b_0, l, m, c\).

1.3 輸出格式

輸出 \(⌊\frac{q}{k}⌋\) 行, 第 i 行表示第一次到第 \(i ∗ k\) 次詢問結果的異或和. 你不需要對異或和進行取模.

1.4 樣例資料

1.4.1 樣例 1 輸入

4 3 9 6
5 8 7 7

1.4.2 樣例 1 輸出

0

1.4.3 樣例 1 解釋

b1 − b6 分別為 2, 5, 2, 5, 2, 5, 答案都是 1, 異或和為 0.

1.5 資料範圍

對於前 10% 的資料, \(q = 0\);
對於前 50% 的資料, \(q ≤ 10^5\);
對於另外 20% 的資料, \(p = 999983\);
對於 100% 的資料, \(a ≤ 10^9, q ≤ 10^7, p ≤ 10^9, ⌊\frac{q}{k}⌋ ≤ 1000, b_0, l ≤ 10^{12}, m, c ≤ 10^6\).

分析

2 樹

時間限制: 1s
空間限制: 256MB

2.1 題目描述

你有一個長度為 \(n\) 的序列, 第 \(i\) 個數是 \(a_i\) , 下標從 \(1\) 開始. 有 \(q\) 次操作, 可能為:
1 l r k, 表示 \(∀x ∈ [l, r]\)

, 使 \(a_x\) 變為 \(a_x & k\). 其中 \(&\) 表示按位與運算.
2 l r, 表示詢問連續子序列 \([l, r]\) 中所有元素的和.
3 l r, 表示詢問: 如果在 \([l, r]\) 之間均勻隨機生成兩個整數 \(x, y,(ax + ay)^2\) 的期望值. 你只需要輸出答案與 \((r − l + 1)^2\) 的乘積對 \(998244353\) 取模的值. 可以證明答案一定是整數.

2.2 輸入格式

第一行一個整數 \(n\) 表示序列長度, 接下來一行 \(n\) 個整數描述這個序列.
第三行一個整數 \(q\) 表示操作次數, 接下來 \(q\) 行每行一次操作, 格式同題目描述.

2.3 輸出格式

輸出等同於操作 2, 3 次數之和的行數, 每行一個非負整數表示對應詢問的答案. 注意操作 2 的答案不需要進行取模.

2.4 樣例資料

2.4.1 樣例 1 輸入

5
8 4 3 5 6
5
2 3 5
3 1 2
1 2 4 3
2 3 5
3 1 2

2.4.2 樣例 1 輸出

14
608
10
384

2.4.3 樣例 1 解釋

第三次操作後, 序列變為 \([8, 0, 3, 1, 6]\) .

2.5 資料範圍

對於前 30% 的資料, \(n, q ≤ 100\);
對於另 20% 的資料, 沒有操作 1;
對於另 20% 的資料, 沒有操作 3;
對於 100% 的資料, \(n, q ≤ 10^5, ai ≤ 10^9, k ≤ 2^30, 1 ≤ l ≤ r ≤ n\) .

分析