博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4081 次小生成树
阅读量:6973 次
发布时间:2019-06-27

本文共 1630 字,大约阅读时间需要 5 分钟。

我就不说题意了,为了使A/B最大,就应该是B越小,故可以先求出n个点的最小生成树。因此,可以枚举每一条边,假设最小生成树的值是B, 而枚举的那条边长度是edge[i][j],  如果这一条边已经是属于最小生成树上的,那么最终式子的值是A/(B-edge[i][j])。如果这一条不属于最小生成树上的, 那么添加上这条边,就会有n条边,那么就会使得有了一个,为了使得它还是一个生成树,就要删掉环上的一棵树。 为了让生成树尽量少,那么就要删掉除了加入的那条边以外,权值最大的那条路径。 假设删除的那个边的权值是Max[i][j], 那么就是A/(B-Max[i][j]).

这题的关键也在于怎样求出次小生成树;

先用prim求出最小生成树T.在prim的同时,用一个矩阵max[u][v] 记录 在T中连结任意两点u,v的唯一的路中权值最大的那条边的权值.这是很容易做到的,因为prim是每次增加一个结点s, 而设已经标号了的结点集合为W, 则W中所有的结点到s的路中的最大权值的边就是当前加入的这条边.

View Code
1 #include
2 #include
3 #include
4 const int N=1010; 5 const double inf=1e14; 6 using namespace std; 7 8 struct Point{ 9 int x,y,z;10 }point[N];11 12 int n;13 double edge[N][N];14 int nearvex[N];//保存前驱15 double lowcost[N]; 16 double sum;17 18 int used[N][N];19 int visited[N];20 double Max[N][N];//用来保存最小生成树中两点之间的权值最大的边21 22 23 void prim(int v0){24 sum=0;25 memset(used,0,sizeof(used));26 memset(visited,0,sizeof(visited));27 memset(Max,0,sizeof(Max));28 for(int i=1;i<=n;i++){29 lowcost[i]=edge[v0][i];30 nearvex[i]=v0;31 }32 visited[v0]=1;33 for(int i=1;i
lowcost[v]?Max[k][nearvex[v]]:lowcost[v]);49 }50 if(!visited[k]&&edge[v][k]
(point[i].z+point[j].z)*1.0/(sum-edge[i][j])?r:(point[i].z+point[j].z)*1.0/(sum-edge[i][j]));81 }else if(!used[i][j]){82 r=(r>(point[i].z+point[j].z)*1.0/(sum-Max[i][j])?r:(point[i].z+point[j].z)*1.0/(sum-Max[i][j]));83 }84 }85 }86 printf("%.2lf\n",r);87 }88 return 0;89 }

 

转载地址:http://yuesl.baihongyu.com/

你可能感兴趣的文章
TensorFlow教程之完整教程 2.10 偏微分方程
查看>>
它是中国人口最小的城市,却美得像个意外!
查看>>
加码远程医疗 视频通信公司Vidyo获得医疗企业巨额投资
查看>>
高通输了官司,需返还黑莓8.15亿专利费
查看>>
Facebook盯上修图应用Prisma 展示类似应用
查看>>
来Snapchat和QQ看看,什么叫年轻人的大生意
查看>>
硅谷基金为什么投资iPhone黑客的初创企业
查看>>
高通要赔韩国59亿 国产企业能否借机争取自身利益
查看>>
Dell'Oro指出2017年WDM市场将维持增长
查看>>
移动医疗最严监管来袭:大批在线医疗公司将死
查看>>
宣武医院:让物联网为智慧医疗添翼
查看>>
城市更智慧生活更便捷
查看>>
新型病毒DoubleAgent曝光:攻击计算机前先入侵防病毒软件
查看>>
这款Chrome扩展:能够提升空中WiFi的页面打开速度
查看>>
服务提供商收入下降12% 思科降低Q2财政预期
查看>>
四川信息安全产业今年产值将达400亿元
查看>>
智能安防发展面面观
查看>>
Office Mobile预览版更新17.7369版:Word文档可保存为PDF
查看>>
当SSD真的来敲门,是迎接还是等待?
查看>>
网站制作平台PageCloud获得A轮融资400万美元
查看>>