最小生成树变型——[Usaco2008 Oct]灌水
2011-03-24 20:49
267 查看
咋一看还以为是,求森林里树的最小和
实际增加0点就是求最小生成树了……
View Code
实际增加0点就是求最小生成树了……
View Code
#include<stdio.h> int map[309][309]; int dis[309]; int p[309]; bool use[309]; int n; void krus() { int i,min,rj,j; for(i=0;i<=n;i++) { use[i]=0; dis[i]=map[0][i]; } use[0]=1; int add=0; for(i=0;i<n;i++) { min=99999999; for(j=0;j<=n;j++) { if(use[j]==1)continue; if(dis[j]<min) { min=dis[j]; rj=j; } } use[rj]=1; add+=min; for(j=0;j<=n;j++) { if(use[j]==1)continue; if(dis[j]>map[rj][j]) dis[j]=map[rj][j]; } } printf("%d\n",add); } int main() { int i,j; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%d",&p[i]); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { scanf("%d",&map[i][j]); } } for(i=1;i<=n;i++) { map[0][i]=p[i]; map[i][0]=p[i]; } krus(); } }
相关文章推荐
- 【最小生成树】Bzoj1601[Usaco2008 Oct]灌水
- 【bzoj1601】【Usaco2008 Oct】灌水 (最小生成树) 题解&代码
- BZOJ_1601_[Usaco2008_Oct]_灌水_(最小生成树_Kruskal)
- bzoj 1601: [Usaco2008 Oct]灌水 (最小生成树)
- [bzoj1601]: [Usaco2008 Oct]灌水牧场行走 最小生成树
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
- 【BZOJ1601】[Usaco2008 Oct]灌水【最小生成树】
- [Usaco2008 Oct]灌水 最小生成树
- BZOJ 1601 [Usaco2008 Oct]灌水(最小生成树)
- [BZOJ1601][Usaco2008 Oct]灌水 最小生成树水题
- bzoj 1601: [Usaco2008 Oct]灌水(最小生成树)
- bzoj 1601: [Usaco2008 Oct]灌水【最小生成树】
- BZOJ 1601 [Usaco2008 Oct] 最小生成树 解题报告
- BZOJ1601 Usaco2008 Oct 灌水
- Kruskal-BZOJ-1601- [Usaco2008 Oct]灌水
- BZOJ 1601 Usaco2008 Oct 灌水 Prim
- BZOJ 1601: [Usaco2008 Oct]灌水
- bzoj1601: [Usaco2008 Oct]灌水
- bzoj 1601 [Usaco2008 Oct]灌水