社区讨论

可爱并非妹纸萌新刚学mcmf 10^-9 s64 pts MLE后四个点球跳

P3381【模板】最小费用最大流参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mlgxvoyt
此快照首次捕获于
2026/02/11 02:33
上周
此快照最后确认于
2026/02/11 02:33
上周
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
namespace florr
{
	#define meow ios_base::sync_with_stdio(false);cin.tie(0)
	#define rep(i,l,r,k) for(int i=l;i<=r;i+=k)
	#define rrep(i,r,l,k) for(int i=r;i>=l;i-=k)
	#define loop(i,st,ed,nxt) for(int i=st;i!=ed;i=nxt)
	#define file(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout);
	const int inf=0x3f3f3f3f;
	const long long infll=0x3f3f3f3f3f3f3f3fll;
	const __int128 infi128=(__int128(1)<<126);
	__int128 abs(__int128 x){return x<0?-x:x;}
}//namespace florr
using namespace florr;
constexpr int N=5005,M=50005;
int n,m,now[N],h[N],tot=1,cost;
struct{int to,w,cap,nxt;}e[M<<1];
void add(int u,int v,int w,int c)
{
	++tot;
	e[tot]={v,w,c,h[u]};
	h[u]=tot;
}
int dis[N];
bool inq[N];
bool spfa(int s,int t)
{
	rep(i,1,n,1)now[i]=h[i],dis[i]=inf,inq[i]=0;
	queue<int>q;
	q.emplace(s);
	dis[s]=0;inq[s]=1;
	for(;q.size();q.pop())
	{
		int u=q.front();inq[u]=0;
		for(int i=h[u];i;i=e[i].nxt)
		{
			int v=e[i].to,w=e[i].w,cap=e[i].cap;
			if(cap&&dis[u]+w<dis[v])
			{
				dis[v]=dis[u]+w;
				if(!inq[v])inq[v]=1,q.emplace(v);
			}
		} 
	}
	return dis[t]!=inf;
}
int dfs(int u,int t,int f)
{
	if(u==t||!f)return f;
	int res=0;
	for(int &i=now[u];i;i=e[i].nxt)
	{
		int v=e[i].to,w=e[i].w,cap=e[i].cap;
		if(cap&&dis[u]+w==dis[v])
		{
			int d=dfs(v,t,min(f-res,cap));
			e[i].cap-=d;
			e[i^1].cap+=d;
            cost+=d*w;
			res+=d;
			if(res==f)return res;
		}
	}
	return res;
}
int dinic(int s,int t)
{
	int res=0;
	while(spfa(s,t))
		res+=dfs(s,t,inf);
	return res;
}
void init()
{

}
void solve()
{
	int s,t;
	cin>>n>>m>>s>>t;
	rep(i,1,m,1)
	{
		int u,v,w,c;
		cin>>u>>v>>c>>w;
		add(u,v,w,c);
		add(v,u,-w,0);
	}
	cout<<dinic(s,t)<<' '<<cost;
}
signed main()
{
//	file("");
	meow;
	signed T=1;
	//cin>>T;
	init();
	rep(i,1,T,1)solve();
}

/*
1.MLE?
2.array size enough?
3.long long?
4.overflow long long?
5.multiple task cleaned?
6.freopen?
7.TLE?
*/

回复

5 条回复,欢迎继续交流。

正在加载回复...