提交记录 8912
| 提交时间 |
评测时间 |
| 2019-03-21 15:28:31 |
2020-08-01 01:26:29 |
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#define P 998244353
using namespace std;
typedef long long ll;
int n, m, op;
vector <int> D[400010];
ll A[400010], B[400010], SB[400010], mu[400010], Smu[400010], lans = 0, ans = 0;
ll SV[400010], O[400010];
ll calc(ll x) {
return x * (x + 1) / 2 % P;
}
int main() {
//freopen("lalaland.in", "r", stdin);
//freopen("lalaland.out", "w", stdout);
scanf("%d%d%d", &n, &m, &op);
/*for(int i = 1; i <= 400000; i++)
for(int j = i; j <= 400000; j += i) O[j]++;
for(int i = 1; i <= 400000; i++) D[i].resize(O[i]);
for(int i = 1; i <= 400000; i++)
for(int j = i; j <= 400000; j += i) D[j][--O[j]] = i;*/
for(int i = 1; i <= 400000; i++)
for(int j = i; j <= 400000; j += i) D[j].push_back(i);
mu[1] = 1;
for(int i = 1; i <= 400000; i++)
for(int j = i + i; j <= 400000; j += i) mu[j] -= mu[i];
for(int i = 1; i <= 400000; i++) {
ll ans = 0;
for(int j = 0; j < D[i].size(); j++) {
int t = D[i][j];
ans = (ans + mu[t] * calc(i / t) % P * t) % P;
}
A[i] = (A[i - 1] + i * ans * 2ll % P - (i == 1)) % P;
}
for(int i = 1; i <= 400000; i++) {
ll ans = 0;
for(int j = 0; j < D[i].size(); j++) {
int t = D[i][j];
Smu[t] += mu[i];
ans = (ans + mu[t] * Smu[t] % P) % P;
}
B[i] = (B[i - 1] + mu[i] * ans * 2 - (i == 1)) % P;
}
for(int i = 1; i <= 400000; i++)
for(int j = i; j <= 400000; j += i)
SB[j] = (SB[j] + B[i] * mu[j / i]) % P;
for(int i = 1; i <= 400000; i++) SV[i] = 1;
//for(int i = 1; i <= 400000; i++) ans = (ans + SV[i] * SB[i]) % P;
for(int i = 1; i <= n; i++) {
ll a;
scanf("%lld", &a);
if(op == 1) a = ((19891989ll * lans) + a) % m + 1;
ll av = A[a];
for(int j = 0; j < D[a].size(); j++) {
int t = D[a][j];
ll det = av * SV[t] % P;
ans = (ans + det * SB[t]) % P;
SV[t] = (SV[t] + det) % P;
}
if(op || i == n) printf("%lld\n", lans = (ans % P + P) % P); //!!!
}
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 450.231 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #2 | 450.405 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #3 | 450.308 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #4 | 450.322 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #5 | 449.832 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #6 | 450.254 ms | 60 MB + 60 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #7 | 464.392 ms | 60 MB + 496 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #8 | 464.543 ms | 60 MB + 492 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #9 | 467.613 ms | 60 MB + 532 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #10 | 465.104 ms | 60 MB + 484 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #11 | 449.975 ms | 60 MB + 52 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #12 | 450.058 ms | 60 MB + 52 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #13 | 449.952 ms | 60 MB + 52 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #14 | 449.956 ms | 60 MB + 52 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #15 | 565.944 ms | 62 MB + 672 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #16 | 567.001 ms | 62 MB + 716 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #17 | 491.898 ms | 60 MB + 992 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #18 | 490.404 ms | 60 MB + 984 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #19 | 580.293 ms | 62 MB + 748 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #20 | 589.704 ms | 62 MB + 860 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-05 15:07:06 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠