目录
主要代码
代码逻辑实在简单
vector<BigInt> a;
vector<BigInt> u = { {"314882150829468584"} ,//2^3*3947*1455859*6849701
{"427197303358170108"} ,//2^2*3*157*373*607909278869
{"1022292690726729920" },//2^6*5*1109*366901*7851359
{"1698479428772363217" },//3*227*1171*2129885634067
{"2006101093849356424" }//2^3*6115411*41005034123
};
#define DEBUG
int main()
{
#ifdef DEBUG
fstream cin("input.txt");
#endif // DEBUG
int n, q;
cin >> n >> q;
a.resize(n);
for (int i = 0; i < n; i++)
a[i] = { (uint32_t)i + 1 };
int l, r;
while (q--)
{
cin >> l >> r;
int s = 0;
for (int i = l; i <= r; i++) {
s += a[i - 1] % 2019;
}
cout << s << endl;
for (int i = l; i <= r; i++) {
a[i - 1] *= u[s % 5];
a[i - 1] %= BigInt{ "2009731336725594113" };
}
}
}
核心大整数类代码获取
在我的另一篇文章里有直接github下载
BigInt实现
输入数据
省的你们打
100 100
45 74
38 50
7 45
42 62
83 100
50 51
8 11
93 98
64 70
15 87
30 87
13 79
14 81
18 79
70 88
25 39
13 57
55 85
80 92
83 90
54 75
1 61
17 42
25 49
39 77
32 45
83 87
30 47
59 84
25 50
1 82
21 45
72 96
3 85
16 64
52 92
28 29
84 88
26 93
10 67
27 76
57 62
43 69
63 66
5 59
9 46
49 53
35 50
3 19
23 62
38 73
17 68
34 83
42 91
13 92
19 62
17 70
18 75
95 99
35 90
81 91
59 63
5 90
22 87
51 88
25 61
56 91
50 78
11 60
11 18
27 45
57 82
16 54
3 94
33 56
9 71
68 88
24 36
7 64
48 85
58 76
20 43
9 90
24 27
71 97
25 95
73 97
55 83
22 43
53 55
68 88
12 44
25 87
14 46
34 56
15 35
7 80
46 87
23 71
88 93