typedef long long LL;
LL sum=0;
for(int j=1;j<=n;j++){
if(dist1[j]>=0x3f3f3f3f/2){
sum+=j*1e9;
continue;
}
sum+=j*(dist1[j]-dist[i]+dist[j]);
}
cout<<sum<<endl;
假如类似这个代码,如果是24pts,
-
一种是讨论区已经说过的这个+=右面的表达式没有一个是long long类型,所以没有升到long long进行计算导致的溢出,解决办法就是右边表达式搞个long long类型,不再赘述.
-
另一种就是 :看看自己的sum+=j*1e9这里,可能写成了是sum+=1e9,没有乘于j.
(我不会告诉你我眼神不好,忘了乘于j了?♂️