Tangled in Cables
Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 6348   Accepted: 2505

Description

You are the owner of SmallCableCo and have purchased the franchise rights for a small town. Unfortunately, you lack enough funds to start your business properly and are relying on parts you have found in an old warehouse you bought. Among your finds is a single spool of cable and a lot of connectors. You want to figure out whether you have enough cable to connect every house in town. You have a map of town with the distances for all the paths you may use to run your cable between the houses. You want to calculate the shortest length of cable you must have to connect all of the houses together.

Input

Only one town will be given in an input.

  • The first line gives the length of cable on the spool as a real number.
  • The second line contains the number of houses, N
  • The next N lines give the name of each house's owner. Each name consists of
    up to 20 characters {a–z,A–Z,0–9} and contains no whitespace or punctuation.
  • Next line: M, number of paths between houses
  • next M lines in the form

< house name A > < house name
B > < distance >
Where the two house names match two different
names in the list above and the distance is a positive real number. There will
not be two paths between the same pair of houses.

Output

The output will consist of a single line. If there is
not enough cable to connect all of the houses in the town, output
Not enough
cable
If there is enough cable, then output
Need < X > miles of
cable
Print X to the nearest tenth of a mile (0.1).

Sample Input

100.0
4
Jones
Smiths
Howards
Wangs
5
Jones Smiths 2.0
Jones Howards 4.2
Jones Wangs 6.7
Howards Wangs 4.0
Smiths Wangs 10.0

Sample Output

Need 10.2 miles of cable

Source

POJ2075 Tangled in Cables 最小生成树
题目大意:

给你一些人名,然后给你n条连接这些人名所拥有的房子的路,求用最小的代价求连接这些房子的花费是否满足要求。

#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#include<algorithm>
#include<iostream>
using namespace std;
#define N 15010
map<string,int>ad;
struct node{
int x,y;
double v;
node(int x=,int y=,double v=):x(x),y(y),v(v){}
}e[N];
int n,m,fa[N];double money;
int find(int x){
return fa[x]==x?x:fa[x]=find(fa[x]);
}
bool cmp(const node &a,const node &b){
return a.v<b.v;
}
int main(){
freopen("sh.in","r",stdin);
scanf("%lf%d",&money,&n);
for(int i=;i<=n;i++){
char str[];
scanf("%s",str);
ad[str]=i;
}
scanf("%d",&m);
for(int i=;i<=m;i++){
char c1[],c2[];
double cost;
scanf("%s %s %lf",c1,c2,&cost);
e[i].x=ad[c1];
e[i].y=ad[c2];
e[i].v=cost;
}
sort(e+,e+m+,cmp);
double ans=;int k=;
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=m;i++){
int fx=find(e[i].x),fy=find(e[i].y);
if(fx!=fy){
fa[fy]=fx;
ans+=e[i].v;
k++;
}
if(k==n-) break;
}
if(money>ans) printf("Need %.1lf miles of cable\n",ans);
else printf("Not enough cable\n");
return ;
}

poj2075的更多相关文章

  1. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...

随机推荐

  1. 信号驱动IO

    [1]信号驱动IO 应用程序:1)应用程序要捕捉SIGIO信号           signal(SIGIO, handler); 2)应用程序要指定进程为文件的属主,设置当前的文件描述为当前的调用进 ...

  2. OpenGL变换【转】

    http://www.cnblogs.com/hefee/p/3811099.html OpenGL变换 概述 OpenGL变换矩阵 实例:GL_MODELVIEW矩阵 实例:GL_PROJECTIO ...

  3. yarn Fairscheduler与Capacityscheduler

    Capacityscheduler Capacityscheduler允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力.通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源, ...

  4. 2017.7.31 ELK+logback+redis的使用

    参考来自:spring mvc+ELK从头开始搭建日志平台 0 前提 ELK安装成功 redis安装成功 使用logback的项目运行成功 1 配置文件 1.1 pom.xml 为了使用logback ...

  5. TestNG+ReportNG+IDEA+Git+Jenkins+surefire持续集成数据驱动dubbo接口测试

    一.pom.xml增加testng相关配置 <!--添加插件 关联testNg.xml--><plugin> <groupId>org.apache.maven.p ...

  6. Java取得操作系统的临时目录

    一般来说,程序员用Eclipse在Windows上编程,而会将war/ear包发布到Linux的服务器上. 涉及临时文件输出的话需要找一个临时目录,下面的语句就能帮你获得不分操作系统的临时目录 Str ...

  7. hdu 5284 wyh2000 and a string problem(没有算法,仅仅考思维,字符数组得开20万,不然太小了)

    代码: #include<cstdio> #include<cstring> using namespace std; char s[200000]; int main() { ...

  8. 最美应用-从Android研发project师的角度之[最美时光]

    最美应用-从Android研发project师的角度之最美时光 @author ASCE1885的 Github 简书 微博 CSDN 近期发现最美应用这样一个站点.它会定期推介一些非常有意思的app ...

  9. python——定时闹钟讲解

    自己写的闹钟, 只可以播放wav格式的音频. import time import sys soundFile = 'sound.wav' not_executed = 1 def soundStar ...

  10. react-native 项目实战 -- 新闻客户端(5) -- 完善首页列表数据

    1.Home.js: /** * 首页 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, T ...