CCF 魔数C++大整数类暴力实现(15分)

主要代码

代码逻辑实在简单

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
发布了8 篇原创文章 · 获赞 6 · 访问量 537

猜你喜欢

转载自blog.csdn.net/qq_41433566/article/details/105376770