UVA-11183- Teen Girl Squad(最小树形图模板)
2017-02-21 18:08
441 查看
题目链接:UVA-11183- Teen Girl Squad
最小树形图,套模板即可。
最小树形图,套模板即可。
#include<bits/stdc++.h> using namespace std; const int INF=1e9+7; int n,m; struct Edge{ int u,v,d; }; Edge edges[40007]; int in[1007],vis[1007],id[1007],pre[1007]; int zhuliu(int rt) { int res=0; while(1) { //找最小入边 for(int i=0;i<n;i++) in[i]=INF; for(int i=0;i<m;i++) { if(edges[i].u!=edges[i].v&&edges[i].d<in[edges[i].v]) in[edges[i].v]=edges[i].d,pre[edges[i].v]=edges[i].u; } for(int i=0;i<n;i++) if(i!=rt&&in[i]==INF) return INF; //找环 memset(vis,-1,sizeof(vis)); memset(id,-1,sizeof(id)); int tn=0; in[rt]=0; for(int i=0;i<n;i++) { res+=in[i]; int u=i; while(rt!=u&&id[u]==-1&&vis[u]!=i) { vis[u]=i; u=pre[u]; } if(rt!=u&&id[u]==-1) { for(int v=pre[u];v!=u;v=pre[v]) id[v]=tn; id[u]=tn++; } } if(tn==0) break; for(int i=0;i<n;i++) if(id[i]==-1) id[i]=tn++; for(int i=0;i<m;) { int v=edges[i].v; edges[i].u=id[edges[i].u]; edges[i].v=id[edges[i].v]; if(edges[i].u!=edges[i].v) edges[i++].d-=in[v]; else edges[i]=edges[--m]; } n=tn; rt=id[rt]; } return res; } int main() { int T,kase=0; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=0;i<m;i++) scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].d); printf("Case #%d: ",++kase); int ans=zhuliu(0); if(ans==INF) puts("Possums!"); else printf("%d\n",ans); } return 0; }
相关文章推荐
- Uva 11183 Teen Girl Squad(最小树形图 模板)
- uva11183 Teen Girl Squad(最小树形图)
- UVA 11183 Teen Girl Squad(最小树形图)
- UVA11183 Teen Girl Squad (最小树形图)
- UVA 11183 Teen Girl Squad(最小树形图裸题)
- kuangbin专题八 UVA11183 Teen Girl Squad(最小树形图)
- UVA 11183 - Teen Girl Squad(最小树形图)
- UVA 11183 Teen Girl Squad(最小树形图)
- UVa11183 - Teen Girl Squad(最小树形图-裸)
- UVa11183 - Teen Girl Squad(最小树形图-裸)
- uva11183 Teen Girl Squad(最小树形图朱刘算法)
- UVA-11183 Teen Girl Squad (最小树形图、朱刘算法模板)
- UVA - 11183 Teen Girl Squad(最小树形图)
- uva11183 Teen Girl Squad(最小树形图)
- uva 11183 Teen Girl Squad (最小树形图)
- UVA 11183 Teen Girl Squad 最小树形图
- Teen Girl Squad - UVA 11183 - 最小树形图
- POJ 3164Command Network && UVA 11183 Teen Girl Squad 最小树形图
- 最小树形图 UVA 11183 Teen Girl Squad
- UVA 11183 Teen Girl Squard(最小树形图)