有点不太理解

P1569 Generic Cow Protests

我也不太理解,有大佬回复一下吗
by h2030819027 @ 2022-03-13 14:17:59


这个一开始我也没明白,过了9个点,然后把错误点数据下载下来看了下,就明白为什么要求 `s[j]` 大于零了 前面几个数据如下: | 1202| 706 | -1275 | -1337 | 1847 | 1426 | 510 | 1160 | -2186 | -2417 | | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | 然后它们的前缀和如下: | 0| 1202 | 1908 | 633 | -704 | 1143 | 2569 | 3079 | 4239 | 2053 |-364 | | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | -----------: | 当 `i=10` 的时候,`dp[i]` 应该为0,因为总和为负,无解!!但是在循环时 $-364-(-704) > 0$ ,将 `dp[10]` 更新成了1,多出了一个,所以这里需要特判一下前缀和数组,当 `dp[i]` 或 `dp[j]` 任意一个为负数时就跳过,因为此处无解 所以判断 `dp[i]>=0` 或 `dp[j]>=0` 都可以,但是一个都不判就会出现前面这种错误!
by wali_robot @ 2022-03-30 16:15:12


|