首先方法是利用前缀和+算物品的贡献,卡的点肯定是 pi=0p_i=0pi=0 的情况,所以你只需要把。
dp[i]=get_da(k,st[l],i)
改成
dp[i]=min(get_da(k,st[l],i),dp[i-1]+(w[i]==0?0ll:c[i]+w[i]*dis[i]));
因为有一些点可以不用放,利用这个可以直接跳过所有的这些数据。