【生活没有希望】poj1273网络流大水题

你不能把数据规模改大点吗= =我优化都不加都过了

 #include <cstdio>
#define INF 2147483647
int n,m,ans,x,y,z,M;
int d[],l[],fir[],nex[],to[],wei[];
int min(int a,int b){if(a<b) return a;else return b;}
void add(int x,int y,int z){to[++M]=y;wei[M]=z;nex[M]=fir[x];fir[x]=M;}
int dfs(int now,int flow)
{
if(now==n)
return flow;
int used=;
for(int i=fir[now];i;i=nex[i])
if(d[to[i]]==d[now]+ && wei[i])
{
int fl=dfs(to[i],min(flow-used,wei[i]));
wei[i]-=fl,wei[i^]+=fl;
used+=fl;
}
return used;
}
bool bfs()
{
int h=,t=;
l[]=;d[]=;
for(int i=;i<=n;i++) d[i]=-;
while(h<t)
for(int i=fir[l[++h]];i;i=nex[i])
if(wei[i] && (d[to[i]]==-))
l[++t]=to[i],d[l[t]]=d[l[h]]+;
return d[n]+;
}
int main()
{
while(~scanf("%d%d",&m,&n))
{
for(int i=;i<=n;i++)
fir[i]=;
for(ans=,M=;m;m--)
scanf("%d%d%d",&x,&y,&z),add(x,y,z),add(y,x,);
while(bfs()) ans+=dfs(,INF);
printf("%d\n",ans);
}
return ;
}

丧病的多组数据,一开始没看见

上一篇:OSB开发常用资料


下一篇:【转】以Python为例的Async / Await的编程基础