0%

CF-1020-E. Wolf

思路讲解

一般难度,看着比较唬人。

其实就是看看有多少个需要替换位置,需要将其替换为比k小或者大的数。

那其实我们只要知道有几个替换位置就行。因为这个替换无视距离,不要求连续。(读题不要读成以为是连续的了)
然后注意大的数和小的数是可以对冲的,能内部解决就内部解决,否则会WA testcase2 的第3104个点。

1
2
// 	这些数肯定要换,但可以内部对冲的,就内部对冲,不能内部对冲的,就找外援(max-min)
cout<<needRep+needRep_+(max(needRep_,needRep)-min(needRep,needRep_))<<" ";

AC代码

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

写成这样

1
2
l_=idx+1;
idx=(l_+r_)/2;

而不是这样

1
2
idx=(idx+1+r_)/2;
l_=idx+1;

(l_的idx已经不是原来的idx了)

这种idx最好还是用固定式子得出