#1816. 珅泽教育CSP-J第一轮模拟考第九套 第 30 题
珅泽教育CSP-J第一轮模拟考第九套 第 30 题
第三题
#include<iostream>
int n, q;
char op[200000];
long long p[200000];
long long d[200000];
long long mod = 1000000007;
void solve1(long long a[])
{
for (int i = 0; i < n; ++i)
a[i] = 0;
for (int i = 0; i < q; ++i) {
if (op[i] == '+') {
a[p[i]] += d[i];
a[p[i]] %= mod;
}
else if (op[i] == '*') {
for (int j = 0; j < n; ++j) {
a[j] *= d[i];
a[j] %= mod;
}
}
}
}
void solve2(long long a[])
{
for (int i = 0; i < n; ++i)
a[i] = 0;
long long f = 1;
for (int i = q-1; i >= 0; i--) {
if (op[i] == '+') {
a[p[i]] += d[i] * f;
a[p[i]] %= mod;
}
else if (op[i] == '*') {
f *= d[i];
f %= mod;
}
}
}
判断题
当全部 op[i] = + 时,solve2 数组 a 不等于 ( )。
{{ select(1) }}
- 正确
- 错误