看一下去重
错误代码:
sort (a + 1, a + n + 1, [] (node i, node j) {return i.w < j.w;});
for (int i = 1; i <= n; ++i) {
while (m && a [i].l > b [m].l) --m;
b [++m] = a [i];
}
正确代码
sort (a + 1, a + n + 1, [] (node i, node j) {return i.w < j.w || i.w == j.w && i.l < j.l;});
for (int i = 1; i <= n; ++i) {
while (m && a [i].l >= b [m].l) --m;
b [++m] = a [i];
}