卡掉了这种建边方式:
for (int i = 0; i < n; ++ i) {
int l, r, p, q, ans;
std::cin >> l >> r >> p >> q >> ans;
for (int x = l; x <= r; ++ x) {
for (int y = p; y <= q; ++ y) {
adj[x].emplace_back(y, -ans);
}
}
}
for (int i = 1; i <= m; ++ i) {
adj[0].emplace_back(i, 0);
}
代价是多了两组输出无解的数据(更容易骗到分),以及目前没有正经的可以在 1 秒内跑完的做法(目前最优的做法需要约 3 秒,如果不请出玄学的 dfs-spfa 判负环估计已经接近极限了) 有的。