过于代码的两个小问题,求解
  • 板块P1714 切蛋糕
  • 楼主SUNCHAOYI废物生成器
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/4/3 10:49
  • 上次更新2023/10/28 04:47:13
查看原帖
过于代码的两个小问题,求解
183603
SUNCHAOYI废物生成器楼主2022/4/3 10:49

这道题调了很久,一直 WA。
后来看了下题解才过,不过仍然有以下问题,望解答。

int main ()
{
	for (int i = 1;i <= n;++i) a[i] = read (),sum[i] = sum[i - 1] + a[i];
	for (int i = 1;i <= n;++i)
	{
		while (head <= tail && q[head] + m < i) ++head;//①
		while (head <= tail && sum[q[tail]] >= sum[i]) --tail;
		q[++tail] = i;
		ans = max (ans,sum[i] - sum[q[head]]);//②
	}	
	printf ("%d\n",ans);
	return 0;
}

①处为什么是 q[head] + m < i 而不是 q[head] + m <= i

②处求区间和为什么不是 sum[i] - sum[q[head] - 1]

2022/4/3 10:49
加载中...