Prim_poj2075 Tangled in Cables

原创 2012年03月26日 21:33:26

题意:最小生成树问题,加上简单的字符串处理

/*
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

*/
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
#include<iostream>

#define MAXN 250
#define INF 1000000000

using namespace std;

map<string, int>  bianhao;

double Gmap[MAXN][MAXN];
double LowValue[MAXN];
bool visited[MAXN];

double Prim(int n){
    memset(visited, 0, sizeof(visited));
    visited[0] = 1;
    for(int i = 0; i < n; i++){
        LowValue[i] = Gmap[0][i];
    }
    int st;
    double sum = 0;
    for(int i = 1; i < n; i++){
        double minV = INF;
        for(int j = 0; j < n; j++){
            if(!visited[j] && LowValue[j] < minV){
                minV = LowValue[j];
                st = j;
            }
        }
        visited[st] = 1;sum += minV;
        for(int j = 0; j < n; j++){
            if(!visited[j] && Gmap[st][j] < LowValue[j]) LowValue[j] = Gmap[st][j];
        }
    }
    return sum;
}
void inint(int n){
    for(int i = 0; i< n + 10;i++){
        for(int j = 0; j < n +10; j++){
            Gmap[i][j] = INF;
        }
    }
}
int main(){
    double calen;
    int n, m;
    string str,str1, str2;
    double l;
    while(cin>>calen){
        cin>>n;
        inint(n);
        bianhao.clear();
        for(int i = 0; i < n; i++){
            cin>>str;
            bianhao[str] = i;
        }
        cin>>m;
        for(int i = 0; i < m; i++){
            cin>>str1>>str2>>l;
            Gmap[bianhao[str1]][bianhao[str2]] = Gmap[bianhao[str2]][bianhao[str1]] = l;
        }
        double len = Prim(n);
        if(calen - len >= 0.0000000001)  printf("Need %.1f miles of cable\n", len);
        else printf("Not enough cable\n");
    }
}


zoj 2326 Tangled in Cables【kruskal】

ZOJ Problem Set - 2326 Tangled in Cables Time Limit: 1 Second      Memory Limit: 32768 KB ...
  • WGH_yesterday
  • WGH_yesterday
  • 2011年07月30日 15:40
  • 723

POJ 2075 Tangled in Cables

链接:http://poj.org/problem?id=2075 题意:给N个城市,用电缆将所有城市连接起来。 思路:最小生成树模板题,kruskal算法的应用。 代码: #include ...
  • u011385365
  • u011385365
  • 2014年02月15日 23:00
  • 954

2075:Tangled in Cables

2075:Tangled in Cables总时间限制: 1000ms 内存限制: 65536kB 描述 You are the owner of SmallCableCo and have pu...
  • qq_26919935
  • qq_26919935
  • 2017年08月28日 11:12
  • 54

zoj 2326 Tangled in Cables

复习kruskal算法,外带字符串的二分,qsort的使用,并查集的基本应用。#include #include #include #include #define N 200 using ...
  • xiaomajiyue
  • xiaomajiyue
  • 2011年04月13日 13:20
  • 348

poj 2075 Tangled in Cables

链接:点击打开链接 给n个房子,你需要在房子之间铺电缆,使所有的房子都连上,求最短的电缆, #include #include #include #include #include using nam...
  • hncu1106401
  • hncu1106401
  • 2013年08月18日 12:13
  • 275

ZOJ 2326 Tangled in Cables

裸体最小生成树. #include #include #include #include #include using namespace std; const int maxn = 30...
  • zxjcarrot
  • zxjcarrot
  • 2013年05月14日 20:01
  • 381

Hoj 1751 Tangled in Cables

最小生成树。Prim。 题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1751 练习一下Map使用。 #include #include #i...
  • niuox
  • niuox
  • 2013年02月11日 23:11
  • 316

poj 2075 Tangled in Cables

Tangled in Cables Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 60000/30000K (Java/Other)...
  • zhangxiaoxiang123
  • zhangxiaoxiang123
  • 2015年08月13日 20:23
  • 524

百练 2075: Tangled in Cables

百练 2075: Tangled in Cables
  • coding_sun
  • coding_sun
  • 2017年08月19日 19:59
  • 78

POJ2075 & TOJ2119 Tangled in Cables

Tangled in Cables Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5410 ...
  • wangwenhao00
  • wangwenhao00
  • 2013年08月27日 23:27
  • 776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Prim_poj2075 Tangled in Cables
举报原因:
原因补充:

(最多只允许输入30个字)