社区讨论
求助,拟萌就假装我是个妹子吧
P2805[NOI2009] 植物大战僵尸参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi7rn60p
- 此快照首次捕获于
- 2025/11/21 02:29 4 个月前
- 此快照最后确认于
- 2025/11/21 02:29 4 个月前
为什么我写网络流的时候如果这样写的dfs:
CPPint dfs(int u,int flow){
if(u==t)
return flow;
int res=0;
for(int &i=cur[u];i!=-1;i=nxt[i]){
int v=to[i];
if(depth[v]==depth[u]+1&&w[i]&&in[v]){
int di=dfs(v,min(flow,w[i]));
if(di){
w[i]-=di;
w[i^1]+=di;
res+=di;
if(res==flow)
break;
}
}
}
return res;
}
他就WA掉最后两个点
然后改成这样:
CPPint dfs(int u,int flow){
if(u==t)
return flow;
for(int &i=cur[u];i!=-1;i=nxt[i]){
int v=to[i];
if(depth[v]==depth[u]+1&&w[i]&&in[v]){
int di=dfs(v,min(flow,w[i]));
if(di){
w[i]-=di;
w[i^1]+=di;
return di;
}
}
}
return 0;
}
他就A了?大惑不解...这两个写法有什么不同吗?
回复
共 3 条回复,欢迎继续交流。
正在加载回复...