poj 1258 Agri-Net

来源:互联网 发布:高中教学视频 淘宝网 编辑:程序博客网 时间:2024/05/13 05:10
Agri-Net
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 51418 Accepted: 21436

Description

Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. 
Farmer John ordered a high speed connection for his farm and is going to share his connectivity with the other farmers. To minimize cost, he wants to lay the minimum amount of optical fiber to connect his farm to all the other farms. 
Given a list of how much fiber it takes to connect each pair of farms, you must find the minimum amount of fiber needed to connect them all together. Each farm must connect to some other farm such that a packet can flow from any one farm to any other farm. 
The distance between any two farms will not exceed 100,000. 

Input

The input includes several cases. For each case, the first line contains the number of farms, N (3 <= N <= 100). The following lines contain the N x N conectivity matrix, where each element shows the distance from on farm to another. Logically, they are N lines of N space-separated integers. Physically, they are limited in length to 80 characters, so some lines continue onto others. Of course, the diagonal will be 0, since the distance from farm i to itself is not interesting for this problem.

Output

For each case, output a single integer length that is the sum of the minimum length of fiber required to connect the entire set of farms.

Sample Input

40 4 9 214 0 8 179 8 0 1621 17 16 0

Sample Output

28

Source

USACO 102

提示

题意:

农夫约翰成功被选为镇长!他的竞选承诺之一是给该地区所有的农场带来互联网连接。当然,他需要你的帮助。
农夫约翰为他的农场订制了一个高速宽带连接,并将分享给其他农民。为了最大限度地降低成本,他想铺设最小数量的光纤覆盖到所有其他的农场。
给出一个连接每一对农场需要多少光纤的数据,你必须找到连接它们最少的铺设成本。每个农场都必须连接到其他的农场,这样数据就可以从任何一个农场传到其他农场。
任何两个农场之间的距离将不超过100000。

思路:

喜闻乐见的最小生成树。

示例程序

Source CodeProblem: 1258Code Length: 876BMemory: 400KTime: 32MSLanguage: GCCResult: Accepted#include <stdio.h>#define MAX 1000000007int map[100][100];int prim(int n){    int v[100],d[100],i,i1,t,k,sum=0;    for(i=0;n>i;i++)    {        d[i]=MAX;        v[i]=0;    }    d[0]=0;    for(i=0;n>i;i++)    {        t=MAX;        for(i1=0;n>i1;i1++)        {            if(v[i1]==0&&t>d[i1])            {                t=d[i1];                k=i1;            }        }        sum=sum+t;        v[k]=1;        for(i1=0;n>i1;i1++)        {            if(v[i1]==0&&d[i1]>map[k][i1])            {                d[i1]=map[k][i1];            }        }    }    return sum;}int main(){    int i,n,i1,i2;    while(scanf("%d",&n)!=EOF)    {        for(i=0;n>i;i++)        {            for(i1=0;n>i1;i1++)            {                scanf("%d",&map[i][i1]);            }        }        printf("%d\n",prim(n));    }    return 0;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝不喝水怎么办 七个月的宝宝咳嗽怎么办 怀孕七个月感冒了怎么办 苹果汁弄到白色衣服怎么办 宝宝大便干燥拉不出来怎么办 婴儿吃过青菜米粉呕吐怎么办 50天宝宝便秘5天怎么办 8个月婴幼儿便秘怎么办 1个月婴幼儿便秘怎么办 榨汁后的苹果渣怎么办 宝宝6个月后容易生病怎么办 婴儿头型睡偏了怎么办 6个月婴儿不吃奶怎么办 宝宝秋季腹泻反复发烧怎么办 纯甄过期一个月怎么办 四个月宝宝不吃奶瓶怎么办 四个月宝宝不吃奶粉怎么办 婴儿三四天不大便怎么办 婴儿几天不拉大便怎么办 新生儿6天不拉屎怎么办 孩子10天不大便怎么办 宝宝5天没拉屎怎么办 小孩4-5天不大便怎么办 三个月宝宝睡前哭闹厉害怎么办 新生儿抱着睡放下就醒怎么办 宝宝大运动发育迟缓怎么办 八个月宝宝不会爬怎么办 宝宝竖着抱早了怎么办 孕妇吃的水果少怎么办 6个月宝宝厌奶怎么办 5个月宝宝厌奶怎么办 11个月宝宝厌奶怎么办 母乳宝宝不喝奶粉怎么办 换奶粉不拉大便怎么办 宝宝和妈妈不亲怎么办 冬天榨果汁太凉怎么办 四个月宝宝拉水怎么办 婴儿吃奶吃撑了怎么办 1岁的宝宝腹泻怎么办 一岁宝宝老拉肚子怎么办 一岁宝宝拉肚子怎么办啊