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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值