0%

【LGR-225-Div.1.5】洛谷蓝桥杯模拟赛 G P12596 测速仪惊吓

思路讲解

赛时稍微有点暴力,其实这个是增长的,递增的(不要从代数上想,从几何的角度想就容易很多)。

那么二分或者是双指针都行,那我们就写一个双指针吧,好久没写了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 双指针做法
FOR(i,1,N-1){
FOR(j,bp,N){
ll curArea=Sum[j-1]-Sum[i-1];
ll ldiff=Sum[N]-curArea*2; // ldiff不能加abs,只要ldiff变为负数了,继续加j一定会变大
if(ldiff>=0){
ans=min(ans,abs(ldiff));
}else{
ans=min(ans,abs(ldiff));
bp=j;
break;
}
}
}

核心做法如上,最重要的就是ldiff不能加abs,只要 ldiff 变为负数了,继续加 j 一定会变大(绝对值)。

AC代码

https://www.luogu.com.cn/record/218460139

心路历程(WA,TLE,MLE……)

https://www.luogu.com.cn/record/218309162

赛时TLE,也骗到了80分,可以了可以了。