博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LETTers比赛第七场 Qin Shi Huang's National Road System
阅读量:4673 次
发布时间:2019-06-09

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

这道题和上次周杰出的相似三角形题,是我们校队在2011区预赛中做对的唯一的两道题,最终校队是以罚时的微弱劣势丧失银牌~

解题思路很多种,这里提供一种自己的思路

首先题目求解最小生成树(MST);这里用Prim算法并把最小生成树边的集合存起来;

然后依次去掉每条边,考虑这个n-2边的图,两个for循环依次枚举这两个连通图上的点;得出最优值。

View Code
1 #include
2 #include
3 #include
4 const int maxn=1000+10; 5 typedef struct 6 { 7 int x,y; 8 int p; 9 }Node; 10 typedef struct 11 { 12 int s,e; 13 double w; 14 }Edge; 15 Node node[maxn]; 16 Edge Mst[maxn]; 17 double Gram[maxn][maxn]; 18 double Mst_W; 19 double ans; 20 int N_seq[maxn]; 21 int n;//节点数 22 double Dis(int s,int e) 23 { 24 return (double)sqrt((node[s].x-node[e].x)*(node[s].x-node[e].x)+(node[s].y-node[e].y)*(node[s].y-node[e].y)); 25 } 26 void Build_Gram() 27 { 28 scanf("%d",&n); 29 int i,j; 30 for(i=0;i
Mst[j].w) 58 {min=Mst[j].w;k=j;} 59 Mst_W+=min; 60 N_seq[i+1]=Mst[k].e; 61 temp=Mst[i];Mst[i]=Mst[k];Mst[k]=temp; 62 k=Mst[i].e; 63 for(j=i+1;j
ans) 88 ans=p*1.0/(Mst_W-Mst[i].w); 89 } 90 } 91 int main() 92 { 93 int tt; 94 scanf("%d",&tt); 95 while(tt--) 96 { 97 Build_Gram(); 98 Build_Mst(); 99 Solve();100 printf("%.2lf\n",ans);101 }102 return 0;103 }

 

转载于:https://www.cnblogs.com/LETTers/archive/2012/04/25/2470541.html

你可能感兴趣的文章
Python自动化测试 (九)urllib2 发送HTTP Request
查看>>
[SecureCRT] 解决 securecrt failed to open the host key database file 的问题
查看>>
搭建vue-cli脚手架
查看>>
JS兼容性问题
查看>>
Java实现Oracle导出数据到Excel
查看>>
Python相关网站(持续更新)
查看>>
EventLog实现事件日志操作
查看>>
VS2010上连接SQLite数据库
查看>>
Oracle数据库安装图文操作步骤
查看>>
贪心算法的简单理解
查看>>
Linux性能检测常用的10个基本命令
查看>>
Mac上传代码到Github
查看>>
day80 django模版学习
查看>>
Java实现注册邮箱激活验证
查看>>
Windows Phone 7 Belling‘s课堂(一) 磁贴的学习
查看>>
WPF 位置转化和动画
查看>>
【log4net】配置文件
查看>>
网易2017春招笔试真题编程题集合
查看>>
玩一下易语言 "和"字有多种读音,注定了它的重要性!!
查看>>
Python中的单例模式的几种实现方式的及优化
查看>>