这点属实是没有想到
by coldcloud @ 2024-01-02 21:19:26
的确,但是我觉得楼主没有把问题说的足够清楚(至少一开始我没看明白呜呜呜)
我再详细解释以下:
```
bool cmp(int x)
{
int tot=0,now=1,i;
for(i=2;i<=n;i++)
{
if(road[i]-road[now]>x)//出现间隔大于假设的二分答案
{
if((road[i]-road[now])%x!=0)//不能整除,说明该的长度是n*x+k(n倍的x还要多一点)
//则应该在这个间隔里面插n个路标
{
tot+=(road[i]-road[now])/x;
}
else//可以整除,说明该的长度是n倍的x,应该在其中插入(n-1个)路标
{
tot+=(road[i]-road[now])/x-1;
}
now=i;
}
else//假设是正确结果的二分答案比这个间隔要大(那没事了,玩儿去吧)
{
now=i;
}
}
return k>=tot;
}
```
我一开始就是写批注那几行没有注意(没有考虑整除和不整除的影响),导致了#2何#10出错。希望能帮到大家❤❤❤
by bxqm210 @ 2024-01-28 21:04:30