QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#233002#7647. 树哈希cy19996 1ms3724kbC++20789b2023-10-31 09:39:242023-10-31 09:39:25

Judging History

你现在查看的是最新测评结果

  • [2023-10-31 09:39:25]
  • 评测
  • 测评结果:6
  • 用时:1ms
  • 内存:3724kb
  • [2023-10-31 09:39:24]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

struct fastmod {
  typedef unsigned long long u64;
  typedef __uint128_t u128;

  int m;
  u64 b;

  fastmod(int m) : m(m), b(((u128)1 << 64) / m) {}
  int reduce(u64 a) {
    u64 q = ((u128)a * b) >> 64;
    int r = a - q * m;
    return r < m ? r : r - m;
  }
} z(2);

int n, q, mod;

int main() {
	scanf("%d%d%d", &n, &q, &mod);
	z = fastmod(mod);
	for (int i = 1; i <= n; ++i) {
		if (i == 1) printf("%d\n", q);
		else if (i == 2) printf("%d\n", z.reduce(1ll * q * q));
		else if (i == 3) printf("%d\n", z.reduce(2ll * q * q * q + 1ll * q * q));
		else if (i == 4) printf("%d\n", z.reduce(6ll * q * q % mod * q % mod * q % mod + 9ll * q * q % mod * q + 1ll * q * q % mod));
		else puts("0");
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 6
Acceptable Answer

Test #1:

score: 6
Acceptable Answer
time: 1ms
memory: 3612kb

input:

100 910342260 935929297

output:

910342260
816177711
130801583
514707635
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

points 0.060 You got 6 pts!

Test #2:

score: 6
Acceptable Answer
time: 0ms
memory: 3724kb

input:

100 222959056 947643239

output:

222959056
358599927
24644650
287299555
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

points 0.060 You got 6 pts!

Test #3:

score: 6
Acceptable Answer
time: 0ms
memory: 3604kb

input:

100 135352674 235854343

output:

135352674
116843515
133814470
128256418
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

points 0.060 You got 6 pts!

Test #4:

score: 6
Acceptable Answer
time: 0ms
memory: 3656kb

input:

100 538608644 566215339

output:

538608644
365236991
6521316
39370099
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

points 0.060 You got 6 pts!

Test #5:

score: 6
Acceptable Answer
time: 0ms
memory: 3692kb

input:

100 56831820 281897771

output:

56831820
213573518
33489479
114481529
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

points 0.060 You got 6 pts!