警示后人
查看原帖
警示后人
365751
Mr_罗楼主2024/10/20 10:42

RT,我试图重载比较类

struct cmp {
    bool operator()(int a, int b) const {
        return ct[1][a] * ct[0][b] > ct[0][a] * ct[1][b];
    }
}; priority_queue<int, vector<int>, cmp> pq;

但是这样会出现修改 ct[][] 后堆中顺序混乱的情况,你会喜提 AC 18, WA 56 。

正确方法:把 pair<double, int> 传进去,或者怕有精度问题可以传 pair<int, pair<ll, ll>>

2024/10/20 10:42
加载中...