1 条题解
-
0
数列前缀和 2(Prefix Product Queries) 题解
思路分析
按题目要求使用对应数据结构与算法模拟/递推求解,注意数据范围边界与时间复杂度。
参考代码
#include <iostream> #include <vector> using namespace std; const int MOD = 1145141; // 1054^2 + 185^2 = 1110916 + 34225 = 1145141 int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; if (!(cin >> n >> q)) return 0; vector<int> inv(MOD, 1); for (int i = 2; i < MOD; ++i) { inv[i] = 1LL * (MOD - MOD / i) * inv[MOD % i] % MOD; } vector<int> pref(n + 1, 1), inv_pref(n + 1, 1); for (int i = 1; i <= n; ++i) { int a; cin >> a; pref[i] = 1LL * pref[i - 1] * a % MOD; inv_pref[i] = inv[pref[i]]; } int xor_ans = 0; for (int i = 0; i < q; ++i) { int l, r; cin >> l >> r; int prod = 1LL * pref[r] * inv_pref[l - 1] % MOD; xor_ans ^= prod; } cout << xor_ans << "\n"; return 0; }
- 1
信息
- ID
- 8591
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者