关于本题的数学解法
查看原帖
关于本题的数学解法
1102460
fruian楼主2023/12/27 20:29

我看题解似乎都用的循环求解,但我个人觉得用循环其实并不容易理解,而且时间复杂度很高.

本题其实就是把具体的时刻转换成在这一天中的第几秒.

所有我们可以通过推导h和m关于s的求和公式,从而使时间复杂度直接降到O(1).

求和公式大家有兴趣的可以自己推一下,我这里就直接给出了.

ll h(ll num)  //h->s的求和公式
{
	ll sum = 10 * pow(num, 3) + 33 * pow(num, 2) + 29 * num + 6;
	sum /= 6;
	return sum;
}

ll m(ll num)  //m->s的求和公式
{
	ll sum = 5 * pow(num, 2) + 6 * num + 1;
	return sum;
}
2023/12/27 20:29
加载中...