为什么 f[1][0][7] = 0

P2157 [SDOI2009] 学校食堂

第一个人前一个算是-1吧,或者是0
by te5555 @ 2019-12-03 14:39:30


因为所有f里面的值都是inf(一个极大值),用于更新f数组(min),而我们在后面枚举的时候条件是不等于inf(也就是说已经被便利过)。这个初始化的意思就是从f[1][0][7]开始枚举。
by fading_cloud @ 2019-12-23 13:56:14


因为f[1][0][7]意思是最后一个为1 + (-1),也就是0,在更新的时候可以做到免费(也就是特判)。
by fading_cloud @ 2019-12-23 13:58:06


对于1而言,id(0)=7 为了避免负数下标,平移了一下
by yspm @ 2020-08-02 09:20:23


@[孤叶残影](/user/228395) 本来是 $dp[1][0][-1]=0$,但是第三维整体向右移了 $8$ 位所以变成了 $dp[1][0][7]=0$。
by Coros_Trusds @ 2022-05-21 11:56:50


|