这怎么卡?
查看原帖
这怎么卡?
8457
chen_zheAya楼主2025/4/26 23:18

这个题目的做法是差分约束,其中有一种暴力连边方式如下:

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);
}

这样预计会连出约 5×1065 \times 10^6 条边,而图的点数是约 10410^4,在这个图上跑 SPFA 做差分约束。测试数据也构造了这种情况,然而其可以在 200 毫秒内轻松通过。

所以我很好奇怎么卡这种暴力连边,还是说不太能卡?

2025/4/26 23:18
加载中...