求助dinic玄学优化能够起作用的原因
查看原帖
求助dinic玄学优化能够起作用的原因
520359
acb437楼主2024/8/5 10:49

机缘巧合之下看到这道最小割模板,就写了,然后T飞,接着改了小小的一处就A了,只改了下面这段(dinic中DFS的部分):
原

    for(int &i = now[u];i && sum;i = e[i].nxt)
    {
        int v = e[i].to;
        if(dep[v] != dep[u] + 1 || !e[i].val)continue;
        int tmp = DFS(v, min(sum, e[i].val));
        e[i].val -= tmp, e[i ^ 1].val += tmp;
        sum -= tmp, res += tmp;
      //******
    }

改后

for(int &i = now[u];i && sum;i = e[i].nxt)
    {
        int v = e[i].to;
        if(dep[v] != dep[u] + 1 || !e[i].val)continue;
        int tmp = DFS(v, min(sum, e[i].val));
        e[i].val -= tmp, e[i ^ 1].val += tmp;
        sum -= tmp, res += tmp;
        if(!sum)return res;//******
    }

不知道为什么,发帖求教

2024/8/5 10:49
加载中...