UVA 1494 Qin Shi Huang's National Road System(次小生成树+Prim)
2016-12-31 23:40
465 查看
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> using namespace std; const int maxn=1000+5; int x[maxn],y[maxn],val[maxn]; int n; struct edge{ int u,v; double dist; edge(int u=0,int v=0,double dist=0) :u(u),v(v),dist(dist) {} bool operator < (const edge &rhs) const { return dist>rhs.dist; } }; vector<vector<edge> > G(maxn); double map[maxn][maxn]; double dist[maxn]; double f[maxn][maxn]; int vis[maxn]; void HeapPrim() { memset(vis,0,sizeof(vis)); memset(f,0,sizeof(f)); memset(dist,0x7f,sizeof(dist)); priority_queue<edge> pq; pq.push(edge(0,1,0)); edge nd; double ans=0; while(!pq.empty()) { do{ nd=pq.top(); pq.pop(); }while(vis[nd.v]&&!pq.empty()); if(!vis[nd.v]) { vis[nd.v]=1; map[nd.u][nd.v]=map[nd.v][nd.u]=0; ans+=nd.dist; f[nd.u][nd.v]=nd.dist; for(int i=1;i<=n;i++) { if(vis[i]&&i!=nd.v) { f[i][nd.v]=max(f[i][nd.u],f[nd.u][nd.v]); f[nd.v][i]=f[i][nd.v]; } } for(int i=0;i<G[nd.v].size();i++) { int e=G[nd.v][i].v; if(!vis[e]) { double d=G[nd.v][i].dist; if(dist[e]>d){ dist[e]=d; pq.push(edge(nd.v,e,d)); } } } } } double ab=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { ab=max(ab,(val[i]+val[j])/(ans-f[i][j])); } } printf("%.2f\n",ab); } int main() { int t; scanf("%d",&t); while(t--) { memset(map,0,sizeof(map)); for(int i=0;i<=n;i++) {G[i].clear();} scanf("%d",&n); for(int i=1;i<=n;i++) {scanf("%d%d%d",&x[i],&y[i],&val[i]);} for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++) { int xx=x[i]-x[j]; int yy=y[i]-y[j]; G[i].push_back(edge(i,j,sqrt(xx*xx+yy*yy))); G[j].push_back(edge(j,i,sqrt(xx*xx+yy*yy))); map[i][j]=map[j][i]=sqrt(xx*xx+yy*yy); } } HeapPrim(); } return 0; }
相关文章推荐
- UVA 1494 Qin Shi Huang National Road System(类次小生成树)
- HDU4081 Qin Shi Huang's National Road System(prim+次小生成树)
- uva 1494 - Qin Shi Huang's National Road System(最小生成树)
- UVA 1494 - Qin Shi Huang's National Road System(MST)
- uva 1494 Qin Shi Huang's National Road System
- UVALive 5713 Qin Shi Huang's National Road System(次小生成树)
- hdu 4081 && uva 1494 && LA 5713 Qin Shi Huang's National Road System
- UVALive - 5713 Qin Shi Huang's National Road System
- HDU 4081 Qin Shi Huang's National Road System (2011北京-次小生成树)
- hdoj 4081 Qin Shi Huang's National Road System(次小生成树变形)
- HDU 4081 Qin Shi Huang's National Road System (次小生成树)
- hdu-4081 Qin Shi Huang's National Road System(次小生成树)
- HDU4081_Qin Shi Huang's National Road System_次小生成树相关
- HDU 4081 Qin Shi Huang's National Road System(次小生成树变形)
- HDU 4081 Qin Shi Huang's National Road System(最小生成树/次小生成树)
- 【Prim 求次小生成树】HDU 4081 Qin Shi Huang's National Road System
- kuangbin专题八 HDU4081 Qin Shi Huang's National Road System(次小生成树)
- hdu4081(次小生成树) Qin Shi Huang's National Road System
- Qin Shi Huang's National Road System(次小生成树)
- Qin Shi Huang's National Road System - HDU 4081 - 次小生成树