摘要:
最小生成树,只不过要求的是树中的最大权值。源程序:#include<stdio.h>#define max 0xfffffff#define N 505int s[N],map[N][N],dist[N],n;int prime(){int min,a,u,i,j;for(i=1;i<=n;i++){s[i]=0;dist[i]=map[1][i];}s[1]=1;u=1;min=0;for(i=1;i<n;i++){a=max;for(j=1;j<=n;j++)if(s[j]==0&&dist[j]<a){a=dist[j];u=j;}if 阅读全文
摘要:
很典型的最小生成树,不说什么了。源代码:#include<stdio.h>#define max 0xfffffff#define N 105int map[N][N],dist[N],s[N],n;int prime(){int i,j,u,a,sum;for(i=1;i<=n;i++){s[i]=0;dist[i]=map[1][i];}s[1]=1;u=1;sum=0;for(i=1;i<n;i++){a=max;for(j=1;j<=n;j++)if(s[j]==0&&dist[j]<a){a=dist[j];u=j;}s[u]=1; 阅读全文
摘要:
一开始的时候没看懂题意,看来,英语有待提高。大意是:两个字符串之间的距离定义为不同字母的个数,而除了第一个串,任一串可以由其他的字符串转换过来,要求的就是最短的距离和。用到的算法就是最小生成树prime()算法源代码:#include<stdio.h>#define max 0xfffffff#define N 2005int s[N],dist[N],distance[N][N],n;char map[N][10];int prime(){int i,j,u,a,sum;for(i=1;i<=n;i++){s[i]=0;dist[i]=distance[1][i];}s[1 阅读全文