北大机试最小生成树
来源:互联网 发布:windows正版价格 编辑:程序博客网 时间:2024/05/21 05:43
哎。。。策略错误。。。最小生成树竟然没写完。。。。就差一点就ac五道了T_T
#include <iostream>#include <string>#include <ctype.h>#include <algorithm>#include <string.h>#include <cstdio>#include <cstdlib>using namespace std;struct path{ int name1; int name2; float pathl;};float l;int n;int m;string name[505];struct path p[505];bool in[505];int cmp(struct path a,struct path b){ return a.pathl<b.pathl;}int isin(int i){ if(in[p[i].name1] && !in[p[i].name2]) { in[p[i].name2]=true; return 0; } else { if(!in[p[i].name1] && in[p[i].name2]) { in[p[i].name1]=true; return 0; } } if(in[p[i].name1] && in[p[i].name2]) return 1; return -1;}float getlen(){ int rh=n-2; sort(p,p+m,cmp); float res=p[0].pathl; in[p[0].name1]=in[p[0].name2]=true; int i=1; int j=1; while(rh>0) { int t=isin(j); if(t==0) { rh--; i++; res+=p[j].pathl; for(int k=j;k>=i;k--) p[k]=p[k-1]; j=i; } else { if(t==1) { i++; for(int k=j;k>i;k--) p[k]=p[k-1]; j++; } else j++; } } return res;}int main(){ cin>>l; cin>>n; for(int i=0;i<n;i++) cin>>name[i]; string a,b; float tl; int flag; cin>>m; for(int i=0;i<m;i++) { flag=0; cin>>a>>b; cin>>p[i].pathl; for(int j=0;j<n;j++) { if(name[j]==a) { p[i].name1=j;flag+=1; } if(name[j]==b) { p[i].name2=j;flag+=1; } if(flag==2) break; } } float minl=getlen(); if(minl>l) cout<<"Not enough cable"; else printf("Need %.1f miles of cable",minl); return 0;}
0 0
- 北大机试最小生成树
- 北大ACM2485 - Highways(最小生成树)
- 北大暑期学习之最小生成树
- 【北大 夏令营笔记-最小生成树】poj1258-Agri-Net
- 北大ACM1258——Agri-Net~~最小生成树
- 北大ACM2377——Bad Cowtractors~~最小生成树
- 北大ACM2395——Out of Hay~~最小生成树
- 数据结构与算法问题 北大oj 2075(最小生成树)
- 九度王道考研机试真题 2012-北大Jungle Roads 并查集 最小生成树
- 最小比例 最小生成树
- 最小生成树&&次最小生成树
- 最小生成生成树计数
- 树+最小生成树
- 最小生成树
- 最小生成树 MST
- 最小生成树Kruskal
- kruskal 最小生成树
- 最小生成树
- Asteroids POJ3041 二分图最小顶点覆盖
- spring-guide之spring-jdbc
- 浅谈微信公众号营销背后的技术
- Leetcode 48. Rotate Image (Medium) (java)
- 习题2--注释和#符号
- 北大机试最小生成树
- 最大下标距离
- <理解共享信道访问协议系列1>共享信道前世今生
- const与define的异同
- 分享一个Andriod Base类
- 习题3--数字与数学计算
- [Android知识体系]之四大组件:service(intentService)
- 最牛X的GCC 内联汇编
- 跳出“画地为牢”的陷阱:更加明智地规划职业发展