如果你是 c++ 手写数组版高精且TLE30pts或90pts
查看原帖
如果你是 c++ 手写数组版高精且TLE30pts或90pts
717286
__HHX__楼主2024/8/2 17:00

30pts:

数组的预留空间请尽量开小,或者动态计算。

用我的高精举例:

TLE:

inline BigInt operator *(const T1 &b) {
	BigInt<Maxlen> c;
	c.len = len + 19; // 这是预留空间
	for(int i = 0; i < len; i++) {
		c[i] += num[i] * b;
	}
	for(int i = 0; i < c.len - 1; i++) {
		c[i + 1] += c[i] / binary;
		c[i] %= binary;
	}
	return c;
}

AC:

inline BigInt operator *(const T1 &b) {
	BigInt<Maxlen> c;
	c.len = len + 6; // 这是预留空间
	for(int i = 0; i < len; i++) {
		c[i] += num[i] * b;
	}
	for(int i = 0; i < c.len - 1; i++) {
		c[i + 1] += c[i] / binary;
		c[i] %= binary;
	}
	return c;
}

90pts:

数据无法保证 m≤n+2m \leq n + 2。

如果存在式子 Anm(m>n)A_n^m(m > n) 请返回 00。

2024/8/2 17:00
加载中...