为什么更改完重载运算符后,时间减少了?
by Kevinx @ 2023-09-04 22:10:20
你那个 TLE 的应该改成
```cpp
struct data{
ll u, dis;
bool operator < (const data &a) const{
return dis > a.dis;
}
};
```
你像上面那样,就相当于 `dis < a.dis`,那堆就会变成大根堆,~~然后你的 dij 就假成指数级,比 SPFA 还差~~
by Disjoint_cat @ 2023-09-04 22:18:15
(补:“你像上面那样”指 TLE 的代码)
by Disjoint_cat @ 2023-09-04 22:18:55
刚才回来看到,谢谢dalao
by Kevinx @ 2023-09-05 12:22:42
@[Kevinx](/user/126972) @[Donotplaygame](/user/549499) 我也是下面那种写法
另外在AT上你用 `data` 做名字写重载会寄(实践出真知)
by 大眼仔Happy @ 2023-09-05 20:57:02
@[大眼仔Happy](/user/537046) 哦 `data` CE 我也有过,应该是 C++17(C++20?)以上,它 STL 里有个 `data` 函数所以就 CE 了。
by Disjoint_cat @ 2023-09-05 21:00:04