欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

gsu 2524 Frozen Rose-Heads

发布时间:2024/2/28 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 gsu 2524 Frozen Rose-Heads 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

不知道是什么算法,特别像网络流。但是我找不到汇点。最后深搜,在运用DINIC寻找最小流的类似思想,唉。



#include<cstdio> #include<iostream> #include<cstring> using namespace std;int head[3005],root[3005],f[3005]; struct node {int v,f;int nxt; }edge[3005];int nume; void add(int u,int v,int f) {edge[++nume].v=v; edge[nume].f=f;edge[nume].nxt=head[u];head[u]=nume;edge[++nume].v=u;edge[nume].f=f;edge[nume].nxt=head[v];head[v]=nume; }void dfs(int u) {for(int i=head[u];i!=-1;i=edge[i].nxt){int v=edge[i].v;if(v!=root[u]){root[v]=u;dfs(v);if(f[v]) f[u]+=min(f[v],edge[i].f);else f[u]+=edge[i].f;}} }int main() {int n,src,i;while(scanf("%d%d",&n,&src)!=EOF){nume=1;memset(head,-1,sizeof(head));memset(root,0,sizeof(root));memset(f,0,sizeof(f));for(i=1;i<n;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);}dfs(src);printf("%d\n",f[src]);} }

总结

以上是生活随笔为你收集整理的gsu 2524 Frozen Rose-Heads的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。