poj1258 Agri-Net
2014-03-17 09:31
148 查看
题目:http://poj.org/problem?id=1258
题意:给出一个矩阵,表示第i个农场与第j个农场的距离,求把农场连起来的最短距离。
想法:Kruskal与prim都写了一下。写kruskal遇到点困难,不知道错哪了,改着改着就对了。kruskal和并查集好像有木有。。
代码:
prim
kruskal
题意:给出一个矩阵,表示第i个农场与第j个农场的距离,求把农场连起来的最短距离。
想法:Kruskal与prim都写了一下。写kruskal遇到点困难,不知道错哪了,改着改着就对了。kruskal和并查集好像有木有。。
代码:
prim
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int INF=0x3f3f3f3f; int dis[110]; int link[110][110]; bool vis[110]; int n; int ans; void prim(){ for(int i=1;i<=n;i++) dis[i]=INF; dis[1]=0; ans=0; for(int i=1;i<=n;i++){ int minn=INF,pos; for(int j=1;j<=n;j++){ if(!vis[j]&&dis[j]<minn){ minn=dis[j]; pos=j; } } ans+=dis[pos]; vis[pos]=true; for(int k=1;k<=n;k++){ if(!vis[k]&&dis[k]>link[pos][k]) dis[k]=link[pos][k]; } } cout<<ans<<endl; } int main(){ //freopen("123.txt","r",stdin); while(~scanf("%d",&n)){ memset(vis,false,sizeof(vis)); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>link[i][j]; } } prim(); } return 0; }
kruskal
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct Node{ int x,y; int cost; }point[110*110]; bool cmp(Node a,Node b){ return a.cost<b.cost; } int fa[110]; int n,ans; int find(int x){ if(x!=fa[x]) fa[x]=find(fa[x]); return fa[x]; } int main(){ //freopen("123.txt","r",stdin); while(~scanf("%d",&n)){ int t=0,c; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>c; if(i!=j){ point[t].x=i; point[t].y=j; point[t].cost=c; t++; } } } sort(point,point+t,cmp); for(int i=1;i<=n;i++) fa[i]=i; int num=0,ans=0; for(int i=0;i<t;i++){ int ex=find(point[i].x); int ey=find(point[i].y); if(ex!=ey){ ans+=point[i].cost; fa[ex]=ey; } } printf("%d\n", ans); } return 0; }
相关文章推荐
- 疲劳
- asp网站如何设置默认页_IIS 7.5 在 Windows Server(R) 2008 R2
- 飞行员解析马航370航班与安达曼岛有关的信息
- 深度挖掘:阿里为何一定要上市?
- 2013级C++第4周(春)项目——再和对象找感觉【项目4 - 数组作数据成员】
- Linux访问windows共享文件夹
- 黑客讲故事:攻下隔壁女生路由器后,我都做了些什么~
- input禁止输入,可以点击
- 目标跟踪-粒子滤波
- LINUX嵌入式系统开发平台选择
- Eclipse插件安装的三种方法
- AYOJ 最短路(Bellman_Ford)
- 转:软件架构分解
- mysql中engine=innodb和engine=myisam的区别【转】
- 动态内存分配(C++)
- NPOI方式 导出Excel表头
- matlab的小技巧
- ASP.NET MVC实现POST方式的Redirect
- 利用Github自建的个人博客空间
- “看来少宇这家伙身上有着惊天的秘密啊