help!!最后一个怎么也没过
查看原帖
help!!最后一个怎么也没过
694295
yuanbingtao楼主2022/6/22 09:32
#include <iostream>

using namespace std;
using ll = long long;

const int N = 5e6 + 5;
const ll mod = 998244853LL;

ll ans[N];
ll t;

inline ll read() {
    register ll x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c>'9') {
        if (c == '-') f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
    return x * f;
}

int main() {
	for (int i = 1, t = 0; i < N; i++) {
		t = (t + 1LL * i % mod * (i + 1) / 2 % mod * i % mod) % mod;
		ans[i + 1] = (ans[i + 1] % mod + 1LL * (i + 1) % mod * (i + 2) % mod / 2 % mod * t % mod) % mod;
	}
	for (int i = 1, t = 0; i < N; i++) {
		t = (t + 1LL * i % mod * (i + 1) % mod / 2 % mod * (i * (i + 1) / 2 % mod) % mod * i % mod) % mod;
		ans[i + 1] = 1LL * (ans[i + 1] + mod - t) % mod;
	}
	for (int i = 1, t = 0; i < N; i++) {
		t = (t + 1LL * i * (i + 1) % mod * i % mod) % mod;
		ans[i + 1] = (ans[i + 1] + 1LL * (i + 1) % mod * (i + 1) % mod % mod * t % mod) % mod;
	}
	for (int i = 1, t = 0; i < N; i++) {
		t = (t + 1LL * i * (i + 1) % mod * i % mod * i % mod) % mod;
		ans[i + 1] = (ans[i + 1] + mod - 1LL * 2 * (i + 1) % mod % mod * t % mod) % mod;
	}
	for (int i = 1, t = 0; i < N; i++) {
		t = (t + 1LL * i * 1LL * (i + 1) % mod * 1LL * i % mod * i % mod * i % mod) % mod;
		ans[i + 1] = (ans[i + 1] + 1LL * t % mod) % mod;
	}
	t = read();
	while (t--) {
		int n = read();
		cout << ans[n] << endl;
	}
	return 0;
}```
2022/6/22 09:32
加载中...