你没有处理pi==0的情况
by xiaoxiao090104 @ 2023-09-03 23:09:22
你需要在pi为0时赋一个较大值(如99999),但是普通的多重背包时间应该会被卡最后一个点,所以要二进制优化,题解里面写的很清楚
by xiaoxiao090104 @ 2023-09-03 23:14:30
并且在你这种写法里面
```cpp
while(P!=0&&j-(p[i]-P)*t[i]>=0);
```
应改为
```cpp
while(P>=0&&j-(p[i]-P)*t[i]>=0);
```
by xiaoxiao090104 @ 2023-09-03 23:16:13
否则只有40pts
by xiaoxiao090104 @ 2023-09-03 23:17:31
@[xiaoxiao090104](/user/699471)
代码里的do while循环以及条件中的P!=0就是为了使pi为0时这个循环可以一直进行下去的呀qwq。
by Purple_meteor @ 2023-09-08 22:55:06
@[xiaoxiao090104](/user/699471) 突然反应过来,现在已经过了,感谢大佬指点
by Purple_meteor @ 2023-09-08 23:04:30
@[Pzm20070925](/user/1043658) 不是大佬o
by xiaoxiao090104 @ 2023-09-09 22:56:28