Hdu3405 World Islands解题报告.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hdu3405 World Islands解题报告

Hdu3405 World Islands /* Author: yuanchuanshun Date: 28-05-10 20:29 Description: 解题报告 */ 题目大意及分析 /showproblem.php?pid=3405 典型的求最小生成树,给定个数的岛,其中除却一个岛不与其他岛相连,其余皆相连且要求相连所用网线距离和最短。 起初的想法是求出一个最小生成树后,再寻找边上最小的叶剪去,(不过实现这个想法也是有点难度,我下面给出了当时的源码)结果提交错误,之后就换了想法,循环去掉每个点,求其余点的最小生成树,且题目数据最多50,完全可以枚举。 二、代码 #includestdio.h #includemath.h #define MAX 100000000 double dis[52],a[52][52],flag[52],x[52],y[52],sum[52]; int TT; double DIS(double c,double d,double a,double b) { return sqrt((a-c)*(a-c)+(b-d)*(b-d)); } void prime(double *c,double *d,int n) { int i,j,k,time; double min,max,SUM; for(i=1;i=n;i++) { flag[i]=0; dis[i]=MAX; } flag[1]=1; for(i=2;i=n;i++) { dis[i]=DIS(c[1],d[1],c[i],d[i]); a[1][i]=a[i][1]=dis[i]; } for(i=2;in;i++) for(j=i+1;j=n;j++) { a[i][j]=a[j][i]=DIS(c[i],d[i],c[j],d[j]); } SUM=0; for(time=1;timen;time++) { min=MAX; for(i=2;i=n;i++) { if(flag[i]==1) continue; if(mindis[i]) { min=dis[i]; k=i; } } SUM+=min; flag[k]=1; for(j=1;j=n;j++) { if(flag[j]==1) continue; double t=MAX; //int t; for(k=1;k=n;k++) { if(flag[k]==0) continue; if(a[k][j]t) t=a[k][j]; } dis[j]=t; } } sum[++TT]=SUM; } int main() { int T,N,i,j,k; double Temp,xx[52],yy[52]; scanf(%d,T); while(T--) { TT=0; Temp=MAX; scanf(%d,N); for(i=1;i=N;i++) scanf(%lf%lf,x[i],y[i]); for(i=1;i=N;i++) { k=1; for(j=1;j=N;j++) { if(i==j)continue; //xx[++k]=x[j]; //yy[++k]=x[j]; //以后最好别放这种低级错误。 xx[k]=x[j]; yy[k]=y[j]; k++; } prime(xx,

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档