求助这个原始对偶是否是假的

P3381 【模板】最小费用最大流

```cpp #include <bits/stdc++.h> using namespace std; constexpr int N=5005,M=5e4+5; constexpr long long INF=0x3f3f3f3f3f3f3f3fll; int n,m,S,T,ec{1},eh[N]; int prv[N]; long long dis[N],in[N],h[N]; struct{int nxt,to,w,c;}e[M<<1]; void ebba(int u,int v,int w,int c){ e[++ec]={eh[u],v,w,c},eh[u]=ec; } void adde(int u,int v,int w,int c){ ebba(u,v,w,c),ebba(v,u,0,-c); } void spfa(int s){ static bool inq[N]; queue<int> q; memset(h+1,0x3f,n*sizeof(long long)); memset(inq+1,0,n*sizeof(bool)); h[s]=0,q.emplace(s),inq[s]=true; while(!q.empty()){ int u{q.front()}; q.pop(); inq[u]=false; for(int i{eh[u]};i;i=e[i].nxt){ if(!e[i].w) continue; int v{e[i].to},c{e[i].c}; if(h[u]+c<h[v]){ h[v]=h[u]+c; if(!inq[v]) q.emplace(v),inq[v]=true; } } } } bool dij(int s){ static bool vst[N]; using Q=pair<long long,int>; priority_queue<Q,vector<Q>,greater<Q> > q; memset(dis+1,0x3f,n*sizeof(long long)); memset(vst+1,0,n*sizeof(bool)); q.emplace(dis[s]=0ll,s); in[s]=INF; while(!q.empty()){ int u{q.top().second}; q.pop(); if(vst[u]) continue; vst[u]=true; for(int i{eh[u]};i;i=e[i].nxt){ if(!e[i].w) continue; int v{e[i].to}; long long c{(h[u]-h[v])+e[i].c}; if(dis[u]+c<dis[v]){ prv[v]=i,in[v]=min(in[u],1ll*e[i].w); q.emplace(dis[v]=dis[u]+c,v); } } } return dis[T]<INF; } pair<long long,long long> mcmf(){ long long ws{0ll},cs{0ll}; spfa(S); while(dij(S)){ for(int i{1};i<=n;++i) h[i]+=dis[i]; for(int i{T};i!=S;i=e[prv[i]^1].to){ e[prv[i]].w-=in[T], e[prv[i]^1].w+=in[T]; } ws+=in[T],cs+=in[T]*h[T]; } return make_pair(ws,cs); } signed main(){ scanf("%d%d%d%d",&n,&m,&S,&T); for(int i{1};i<=m;++i){ int u,v,w,c; scanf("%d%d%d%d",&u,&v,&w,&c); adde(u,v,w,c); } auto t=mcmf(); printf("%lld %lld\n",t.first,t.second); return 0; } ```
by rzh123 @ 2023-11-03 20:21:41


@[rzh123](/user/237530) orz 您同学的 spfa 多快?
by Argvchs @ 2023-11-03 20:27:40


@[Argvchs](/user/533270) 比如 <https://www.luogu.com.cn/record/133127814> 比 <https://www.luogu.com.cn/record/133135084> 快
by rzh123 @ 2023-11-03 20:29:13


@[rzh123](/user/237530) 6
by Argvchs @ 2023-11-03 20:30:39


@[Argvchs](/user/533270) ?所以请问我这个是不是假的?
by rzh123 @ 2023-11-03 20:31:23


@[rzh123](/user/237530) n
by Argvchs @ 2023-11-03 20:34:07


@[Argvchs](/user/533270) 谢谢 那是为什么常数大呢?
by rzh123 @ 2023-11-03 20:34:37


@[rzh123](/user/237530) 稠密图前向星不如 vector 快
by Argvchs @ 2023-11-03 20:36:17


谢谢!
by rzh123 @ 2023-11-03 20:36:29


|