卡了两节晚自习...
1.双向边开双倍空间
2.血量为0也能到家
3.每条边最大1e9,总和要long long(#4)
4.二分时注意写法
while(l<r){
mid=(l+r)>>1;
bool whe=dijkstra(mid);
if(whe){
r=mid;
}else{
l=mid+1;
}
}
尽管按照题解第二篇的写法也能过,但那样写不合题意,因为mid在合法状态下,也可能是答案
(以下是错误示范:
while(l<=r){
mid=(l+r)>>1;
bool whe=dijkstra(mid);
if(whe){
r=mid-1;
}else{
l=mid+1;
}