POJ 1251 Jungle Roads (prim)

时间:2021-12-10 21:56:29
D - Jungle Roads

Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u

Description

POJ 1251 	Jungle Roads (prim)
The
Head Elder of the tropical island of Lagrishan has a problem. A burst
of foreign aid money was spent on extra roads between villages some
years ago. But the jungle overtakes roads relentlessly, so the large
road network is too expensive to maintain. The Council of Elders must
choose to stop maintaining some roads. The map above on the left shows
all the roads in use now and the cost in aacms per month to maintain
them. Of course there needs to be some way to get between all the
villages on maintained roads, even if the route is not as short as
before. The Chief Elder would like to tell the Council of Elders what
would be the smallest amount they could spend in aacms per month to
maintain roads that would connect all the villages. The villages are
labeled A through I in the maps above. The map on the right shows the
roads that could be maintained most cheaply, for 216 aacms per month.
Your task is to write a program that will solve such problems.

Input

The input consists of one to 100 data sets, followed by a final line
containing only 0. Each data set starts with a line containing only a
number n, which is the number of villages, 1 < n < 27, and the
villages are labeled with the first n letters of the alphabet,
capitalized. Each data set is completed with n-1 lines that start with
village labels in alphabetical order. There is no line for the last
village. Each line for a village starts with the village label followed
by a number, k, of roads from this village to villages with labels later
in the alphabet. If k is greater than 0, the line continues with data
for each of the k roads. The data for each road is the village label for
the other end of the road followed by the monthly maintenance cost in
aacms for the road. Maintenance costs will be positive integers less
than 100. All data fields in the row are separated by single blanks. The
road network will always allow travel between all the villages. The
network will never have more than 75 roads. No village will have more
than 15 roads going to other villages (before or after in the alphabet).
In the sample input below, the first data set goes with the map above.

Output

The output is one integer per line for each data set: the minimum cost
in aacms per month to maintain a road system that connect all the
villages. Caution: A brute force solution that examines every possible
set of roads will not finish within the one minute time limit.

Sample Input

9
A 2 B 12 I 25
B 3 C 10 H 40 I 8
C 2 D 18 G 55
D 1 E 44
E 2 F 60 G 38
F 0
G 1 H 35
H 1 I 35
3
A 2 B 10 C 40
B 1 C 20
0

Sample Output

216
30
此题输入有问题,再输入字符的时候,如果是scanf(“%c”)的话可能会RE,应该改为1s可以过得
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int inf=0x7fffffff;
int map[][];
int dis[],vis[];
int n;
int prim(int u)
{
int sum=; for(int i=; i<=n; i++)
{
dis[i]=map[u][i];
}
vis[u]=;
for(int k=; k<n; k++)
{
int tmin=inf;
int temp;
for(int j=; j<=n; j++)
{
if(dis[j]<tmin&&!vis[j])
{
tmin=dis[j];
temp=j;
}
}
vis[temp]=;
sum+=tmin;
for(int i=; i<=n; i++)
{
if(dis[i]>map[temp][i]&&!vis[i])
dis[i]=map[temp][i];
}
}
return sum;
}
int main()
{ while(scanf("%d",&n)!=EOF)
{
if(!n)
break;
getchar();
memset(vis,,sizeof(vis));
memset(dis,,sizeof(dis));
// memset(map,0,sizeof(map)); for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
if(i==j)
map[i][j]=;
else
map[i][j]=inf;
}
}
char c1,c2;
int cnt,w;
for(int i=;i<n;i++){
scanf("%1s %d",&c1,&cnt);
int u=c1-'A'+;
for(int j=;j<=cnt;j++){
scanf(" %1s %d",&c2,&w);
int v=c2-'A'+;
map[u][v]=map[v][u]=min(w,map[u][v]);
}
getchar();
}
printf("%d\n",prim()); }
return ;
}

POJ 1251 Jungle Roads (prim)的更多相关文章

  1. POJ 1251 Jungle Roads(最小生成树)

    题意  有n个村子  输入n  然后n-1行先输入村子的序号和与该村子相连的村子数t  后面依次输入t组s和tt s为村子序号 tt为与当前村子的距离  求链接全部村子的最短路径 还是裸的最小生成树咯 ...

  2. POJ 1251 Jungle Roads (最小生成树)

    题目: Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ...

  3. POJ 1251 Jungle Roads(Kruskal算法求解MST)

    题目: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money w ...

  4. hdu1301 Jungle Roads (Prim)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1301 依旧Prim............不多说了 #include<iostream> ...

  5. POJ - 1251 Jungle Roads (最小生成树&amp&semi;并查集

    #include<iostream> #include<algorithm> using namespace std; ,tot=; const int N = 1e5; ]; ...

  6. poj 1251 Jungle Roads &lpar;最小生成树&rpar;

    poj   1251  Jungle Roads  (最小生成树) Link: http://poj.org/problem?id=1251 Jungle Roads Time Limit: 1000 ...

  7. POJ 1251 Jungle Roads - C语言 - Kruskal算法

    Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...

  8. HDU&&num;160&semi;1301&&num;160&semi;Jungle&&num;160&semi;Roads&&num;160&semi;(最小生成树,基础题,模版解释)——同 poj 1251 Jungle Roads

    双向边,基础题,最小生成树   题目 同题目     #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stri ...

  9. POJ 1251 &amp&semi;&amp&semi; HDU 1301&Tab; Jungle Roads (最小生成树)

    Jungle Roads 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/A http://acm.hust.edu.cn/vju ...

随机推荐

  1. 算法系列:CSAPP 推荐

    转载自:https://book.douban.com/review/6093947/ 如果你觉得这本书过于厚重担心看不下来的话,不妨跟着coursera的Hardware/Software Inte ...

  2. 分享一个很好用的 日期选择控件datepicker 使用方法分享

    很多同学在做网站的时候,有时候需要用户选择日期,年月日这些的,以前我也在用一个,但是那个的界面都不太好看,于是找啊找,找啊找,找到一个好东西,就是这个,datepicker,是jquery.ui里面的 ...

  3. Vue 2&period;x &plus; Webpack 3&period;x &plus; Nodejs 多页面项目框架(上篇——纯前端多页面)

    Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇--纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外 ...

  4. 7、正确的赚钱方式 - CEO之公司管理经验谈

    创业者创办公司,最初的目的就是为了赚钱,而普通的员工来公司上班,为了生计,也是以赚钱为目的.今天我们就讲讲正确的赚钱方式. 一.去公司上班: 来公司上班是第一个主要的赚钱方式.不管是员工还是公司领导, ...

  5. UVA - 10931-Parity

    题意:1.输入一个数,将其转换为二进制.2.记录二进制中出现1的次数. 注意:转换二进制后直接输出,不能转换为十进制后输出 #include<iostream> #include<c ...

  6. Set接口HashSet实现类

    java.util.Set接口 extends Collection接口 Set特点: 1.不允许有重复的元素 2.没有索引,没有带索引的方法,也不能使用普通的for遍历 java.util.Hash ...

  7. ios之调用打电话,发短信,打开网址

    1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hz ...

  8. RF中采用python方法获取当月1号、上月1号、下月1号、当前日期N天后日期、当前日期N天前日期、指定月份总天数、上个月份、下个月份、当月最后1天日期、上个月最后1天日期、下个月最后1天日期

    ${TodayDate} evaluate datetime.date.today().strftime('%Y%m%d') datetime ${CurrentMonthFirstDay} eval ...

  9. 牛客网——C列一列

    链接:https://www.nowcoder.net/acm/contest/71/C来源:牛客网 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算 ...

  10. EOJ-3300 奇数统计(高维前缀和)

    题目链接: https://acm.ecnu.edu.cn/problem/3300/ 题目大意: 给n个数,求在n个数中选两个数(可重复),使得这两个数的组合数是奇数,求总共有多少种取法. 解题思路 ...