HDUOJ---1879 继续畅通工程

继续畅通工程

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11473    Accepted Submission(s): 5026


Problem Description
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。

 

Input
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。

当N为0时输入结束。

 

Output
每个测试用例的输出占一行,输出全省畅通需要的最低成本。

 

Sample Input
3 1 2 1 0 1 3 2 0 2 3 4 0 3 1 2 1 0 1 3 2 0 2 3 4 1 3 1 2 1 0 1 3 2 1 2 3 4 1 0

 

Sample Output
3 1 0

 

Author
ZJU

 

Source
浙大计算机研究生复试上机考试-2008年

 普利姆算法。。。。

代码:

 1 //hdu 1879  最小生成树
 2 //@Gxjun coder
 3 #include<stdio.h>
 4 #include<string.h>
 5 const int inf=0x3f3f3f3f;   //最大成本
 6 const int V=101;
 7 int vis[V],lowc[V];
 8 int sta[V][V];
 9 int prim(int cost[][V],int n)
10 {
11     int i,j,p;
12     int minc,res=0;
13     memset(vis , 0 , sizeof(vis));
14     vis[0]=1;
15     for(i=1 ; i<n ; i++)
16     {
17         lowc[i]=cost[0][i];  //初始化
18     }
19     for(i=1 ; i<n ;i++)
20     {
21         minc=inf;
22         p=-1;
23         for(j=0 ; j<n ;j++)
24         {
25             if(0==vis[j] && minc > lowc[j])
26             {
27                 minc = lowc[j];
28                 p=j;
29             }
30         }
31 
32     if(inf==minc ) return 0;  //表示改点没有联通
33     res+=minc;
34     vis[p]=1;
35     for(j=0; j<n ; j++)
36     {
37         if(0==vis[j] && lowc[j] > cost[p][j])
38             lowc[j]= cost[p][j];
39     }
40 }
41     return res;
42 }
43 int main()
44 {
45     int n,i,a,b,val,res,j;
46     while(scanf("%d",&n),n)
47     {
48         for(i=0 ; i<n ;i++)
49         {
50             for(j=0 ; j<n ;j++ )
51             {
52                 sta[i][j]=inf;
53             }
54         }
55         for(i=0;i<n*(n-1)/2 ;i++)
56         {
57             scanf("%d%d%d%d",&a,&b,&res,&val);
58             if(val==0)
59             sta[b-1][a-1]=sta[a-1][b-1]=res;
60             else
61             sta[b-1][a-1]=sta[a-1][b-1]=0;
62         }
63         printf("%d\n",prim(sta,n));
64     }
65     return 0;
66 }
View Code

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows批量关机

建立bat文件,内容如下&#xff1a;net use \\192.168.1.1\ipc$ "admin" /user:"administrator" shutdown -s -f -t 20 -m \\192.168.2.2 net use \\192.168.1.2\ipc$ "admin" /user:"administrator" shutdown -s -f -t 20 -m \\192.16…

动态载入树 (ASP+数据库)

ASPACCESS 在数据量达100万条记录下&#xff0c;载入速度仍然惊人.... // 网上转载. 忘了作者... : ) //********************** Index.asp ************************// 1<%LANGUAGE"VBSCRIPT"CODEPAGE"936"%>2<%OptionExplicit%>3<htm…

ADC——S5PV210的ADC的理论与操作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 s5pv210 AD转换 - biaohc - 博客园 一、ADC的相关概念 1、量程&#xff08;模拟量的输入范围&#xff09; ADC只能输入电压信号&#xff0c;其他种类的模拟信号要经过传感器的转换&#x…

创建新的swap文件

1&#xff09;决定swap文件的大小&#xff0c;这个一般参照要安装软件的说明2&#xff09;以root用户登录&#xff0c;执行以下命令创建一个swap文件dd if/dev/zero of/swapfile bs1M count1024if后面跟的是设备&#xff0c;不确定可以通过”df –h”命令来查看有哪些硬盘设备。…

【洛谷 2661】信息传递

题目描述 有 nn 个同学&#xff08;编号为 11 到 nn &#xff09;正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象&#xff0c;其中&#xff0c;编号为 ii 的同学的信息传递对象是编号为 T_iTi​ 的同学。 游戏开始时&#xff0c;每人都只知道自己的生日。之…

kernel移植——从三星官方内核开始移植

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 一、内核移植初体验 1、获取三星官方的内核源码包 三星SMDKV210开发板附带的光盘里有内核源码包&#xff1a;下载地址。 2、构建移植环境 &#xff08;1&#xff09;Windows下建立SI工程&…

Android中实时视频传输(摄像头实时视频传输)解决方案二

为什么80%的码农都做不了架构师&#xff1f;>>> 1、使用FFMpeg进行视频采集&#xff0c;使用Live555进行RTP传输&#xff0c;使用VideoView进行播放。 csdn提到&#xff1a;重载FrameSource&#xff0c;写一个服务类&#xff0c;可以从FrameSource的派生类读取帧数…

很好的 .NET 换肤软件 IrisSkin

当前.NET下提供换肤的控件有IrisSkin和DotNetSkin。但是DotNetSkin提供的Demo版本&#xff0c;功能有限制&#xff0c;一时找不到可以破解的完全版。IrisSkin 的功能不比DotNetSkin差&#xff0c;而且使用简单。不需要原始文件&#xff0c;只需要dll文件和皮肤文件。详细信息可…

定时器——S5PV210定时器的理论与操作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、定时器简介 1、定时器的含义 定时器作为SoC的外设&#xff0c;主要用来实现定时执行代码的功能&#xff0c;它相对SoC而言&#xff0c;就像闹钟相对于人的意义一样。定时器内部的计数器每隔一个…

gson的简单使用方法

gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段&#xff0c;同时gson又可以通过使用annotation来灵活配置需要序列化的字段。 下面是一个简单的例子&#xff1a; publicclassPerson {privateString name;privatein…

String.Format格式说明

C#格式化数值结果表字符说明示例输出C货币string.Format("{0:C3}", 2)&#xff04;2.000D十进制string.Format("{0:D3}", 2)002E科学计数法1.20E0011.20E001G常规string.Format("{0:G}", 2)2N用分号隔开的数字string.Format("{0:N}", …

linux bjobs

bjobs 查看正在进行的job bkill job id 杀死job 转载于:https://www.cnblogs.com/zk-szd1314/p/11322460.html

uboot的移植——DM9000移植的理论基础

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权请告知删除。 一、网卡相关的基本知识 1、DM9000网卡芯片和SoC的连接 如上图所示&#xff0c;DM9000网卡芯片是通过SROM总线接口&#xff0c;或者说SROM控制器接入SoC的。下面分别介绍SROM控制器、DM9000网卡芯片的相关…

mysql“Access denied for user 'root'@'localhost'”问题的解决

我的系统是Ubuntu12.04&#xff0c;最近新装好的mysql在进入mysql工具时&#xff0c;总是有错误提示:# mysql -uroot -pEnter password:ERROR 1045 (28000): Access denied for user rootlocalhost (using password: NO)使用网上介绍的方法修改root用户的密码&#xff1a;# mys…

ServiceStack.Redis之IRedisClient第三篇

事实上&#xff0c;IRedisClient里面的很多方法&#xff0c;其实就是Redis的命令名。只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法&#xff0c;趁着现在对Redis不是特别了解&#xff0c;我也对着命令来了解一下这些方法。 一、属性 IRedisClient的属性如下&am…

javascript深入浅出

第一章 数据类型 1&#xff0c;六种数据类型&#xff1a;原始类型&#xff08;number&#xff0c;string&#xff0c;boolean&#xff0c;null&#xff0c;undefined&#xff09; object对象&#xff08;Function Array Date&#xff09; 2&#xff0c;隐式转换&#xff1a;Na…

mv命令:移动、重命名文件或文件夹

linux使用mv命令来移动、重命名文件或文件夹。 例如&#xff0c;将一个名为abc.txt的文件重命名为1234.txt&#xff1a;mv abc.txt 1234.txt 例如&#xff0c;将目录A重命名为B&#xff1a;mv A B 例如&#xff0c;将a.txt移动到/b下&#xff0c;并重命名为c.txt&#xff1a…

MTK优美代码赏析6:电话本里的快速排序和插入排序算法

MTK优美代码赏析6:电话本里的快速排序和插入排序算法 记得读书的时候学数据结构和一些程序基础的课程,学了很多的排序算法,当时感觉蛮有趣,也很简单,当大学的教育是以理论为主的,哪些教授们又没给咱举个实用的例子说明为什么要教我们这个,所以考完试就把这些没用的东东给忘了..…

Visual C++中最常用的类与API函数

这篇文章能让初学者快速了解visual C MFC中常见的核心的类与函数&#xff0c;虽然全部看下来有点枯燥&#xff0c;但对初学者快速了解MFC的框架结构很有好处。 常用类 CArchive类&#xff1a;用于二进制保存档案 CBitmap类&#xff1a;封装Windows的图形设备接口(GDI)位图 CBru…

vim编译器的使用方法(行号、删除、复制、查找等)

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 vim是在Linux环境下的编辑器&#xff0c;它的常见使用操作如下。 1、显示行号 编辑器默认不显示行号&#xff0c;有二种办法可以显示行号。 &#xff08;1&#xff09;第一种是&#xff0c;暂时显示。在vim…