求最小生成树的最大边,一定要注意INF的值,不能太小,因为太小WRong了一次,后来看结题报告才发现!!
#include"stdio.h"#include"string.h"#define INF 0x7fffffff//不能过小!!int map[2001][2001],f[2001],mark[2001],n,m;void prime(){ int i,j,k,min,max; memset(mark,0,sizeof(mark)); for(i=1;i<=n;i++) f[i]=map[1][i]; f[1]=0;mark[1]=1; max=-1; for(i=1;imin?max:min; for(j=1;j<=n;j++) { if(f[j]>map[k][j]&&!mark[j]) f[j]=map[k][j]; } } printf("%d\n",max);}int main(){ int i,j,a,b,c; while(scanf("%d%d",&n,&m)!=-1) { memset(map,76,sizeof(map)); for(i=0;i c)map[a][b]=c; if(map[b][a]>c)map[b][a]=c; } prime(); } return 0;}