在用dijkstra做单源最短路的模板,然后一开始松弛那里是这么写的:
if ((to_dis = d + w) < m_distance[to]) {
m_distance[to] = to_dis;
heap.push(to);
}
就正常通过了,然后我想给它整短一点写成这样:
m_distance[to] = (to_dis = d + w) < m_distance[to] ? heap.push(to), to_dis : m_distance[to];
结果超时了,想不明白这是怎么个事。