这个题目属于最小生成树问题,可以用Prim,也可以用Kruskal(还没试)。题意简单直接,给你一个图,求出它最小生成树的权值。

题目最有趣的地方就是图的顶点是字母,稍微处理一下就好了。

Sample Input

9                                        //顶点个数,0时结束

A 2 B 12 I 25                      //每个顶点与后面N个顶点连通   后面N组是顶点编号和权值       比如这组就是A与后面两个顶点(B,I)连通,其中AB=12,AI=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

套的模板吧,也没什么好说的。回头用Kruskal试试。

 #include<iostream>
 #include<cstring>
 #include<cstdio>
 #define INF 0x3f3f3f3f
 using namespace std;

 ][],dis[],flag[];

 int N,T,l,i,j,k,ans,minx;

 char A,a;

 void init()
 {
     memset(G,INF,sizeof(G));
     memset(flag,,sizeof(flag));
 }

 void Prim()
 {
     ans=;
     G[][]=;
     ;i<N;i++)
         dis[i]=G[][i];
     flag[]=;
     ;i<N;i++)
     {
         minx=INF;
         k=;
         ;j<N;j++)
         {
             if(!flag[j]&&dis[j]<minx)
             {
                 minx=dis[j];
                 k=j;
             }
         }
         flag[k]=;
         ans+=minx;
         ;j<N;j++)
         {
             if(!flag[j]&&dis[j]>G[k][j])
                 dis[j]=G[k][j];
         }
     }
     cout<<ans<<endl;
 }

 int main()
 {
     while((cin>>N),N)
     {
         init();
         ;i<N;i++)
         {
             cin>>A>>T;
             while(T--)
             {
                 cin>>a>>l;
                 if(G[A-'A'][a-'A']>l)
                     G[A-'A'][a-'A']=G[a-'A'][A-'A']=l;//A点编号为0
             }
         }
         Prim();
     }
     ;
 }

2016HUAS_ACM暑假集训3F - Jungle Roads的更多相关文章

  1. 2016HUAS_ACM暑假集训4C - 递推

    题目大意:给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形. 这里我们可以这样看: 对于行:假如是m单位长度,则长度为1的矩形有m个,长度为2的矩形有m-1个......长度为m的只有1 ...

  2. 2016HUAS_ACM暑假集训4A - 递推

    利用组合公式C(n,m)=C(n-1,m)+C(n-1,m-1).也就是从n个数里面选择m个数.按递增方式放在每一层循环. 杨辉三角+二项式定理,还真是挺有“意思”的一道题.说实话,非原创.见谅... ...

  3. 2016HUAS_ACM暑假集训4D - 计数,排列

    一个错排公式的基础应用. 大致题意:求n个数的错误排列方式.(每个都要错) 在这里先贴一下错排公式:D(1)=0:D(2)=1:D(n)=(n-1)*(D(n-1)+D(n-2)) 它的推导也非常有意 ...

  4. 2016HUAS_ACM暑假集训4M - 基础DP

    简单的0-1背包问题,大家都会做的.题意不想解释太多. 简述题目的案例及以几个关键 Sample Input 1                            //测试组数T 5 10     ...

  5. 2016HUAS_ACM暑假集训4K - 基础DP

    我不知道怎么用DP,不过DFS挺好用.DFS思路很明显,搜索.记录,如果刚好找到总价值的一半就说明搜索成功. 题目大意:每组6个数,分别表示价值1到6的物品个数.现在问你能不能根据价值均分. Samp ...

  6. 2016HUAS_ACM暑假集训4F - 数论

    这个题目,如果没找到方向,确实有点一头雾水.但是如果你找对方向了,AC是分分钟的事.答案就是看n和m是否有除1之外的公约数. 简单证明:设n和m最大公约数不是1,假设为p.n和m总可以化为一个数乘以k ...

  7. 2016HUAS_ACM暑假集训4B - 递推

    这种数学推理题目题意极其明显,在做的时候,可以多写几组,这样找起规律来会容易些.概括起来就是:题意简单暴力,案例毫无价值. 一个三角形最多可以把一个平面分成两部分,两个三角形最多是8(2+6)部分,而 ...

  8. 2016HUAS_ACM暑假集训3G - 还是畅通工程

    最小生成树,题目简单.套的Prim模板,其他的题目比较有意义. Sample Input 3                             //村庄个数1 2 1               ...

  9. 2016HUAS_ACM暑假集训3C - Til the Cows Come Home

    单源最短路径,首先想到的是Dijkstra.Dijkstra算法的思路就不啰嗦了,概括起来就是时刻保持当前节点到目标节点的距离最短. 题目大意(不进行翻译解释了,就抽离为图来表达):有N个顶点和T条边 ...

随机推荐

  1. 清华微积分-1_Ch1习题

    U3-1 Here are some sets: (1) R both and (2) ∅ both and (3) (1,+∞) open set (4) [−1,0]  closed set, - ...

  2. 将word文件快速转换成表格的技巧

    最近烦心事还真是很多,世界买家网最近就遇到了很多烦心事. 从www.buyerinfo.biz网站中的数据导出为csv格式的文件,我导出了buyer的数据,那怎么把它制作成表格呢? 找了下,发现还是比 ...

  3. 非Animal呢?为何不写个万用类

    /*4.非Animal呢?为何不写个万用类 * 类Object是JAVA里多有类的源头/父类*/ import java.util.*; class Animalb{ String name; voi ...

  4. Git在Windows环境下配置Diff以及Merge工具---DiffMerge

    参考出处:http://coding4streetcred.com/blog/post/Configure-DiffMerge-for-Your-Git-DiffTool主要转自:http://blo ...

  5. Java反射机制专题

    ·Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方 ...

  6. 移动混合开发之android文件管理demo

    框架采用cordova,android编译环境为android studio.系统为mac,cordova 环境搭建参考网址:http://cordova.apache.org/docs/en/5.0 ...

  7. APK签名是如何生成的

    零.前言本文以支付宝手机客户端为例,进行剖析到支付宝官网下载当前最新版本:8.0.1 (2014-01-28)文件名为 alipay_wap_main.apkMD5 摘要为 69820edb3cd13 ...

  8. 如何布局包含Image和Title的UIButton

    UIButton中的titleEdgeInsets和imageEdgeInsets可以管理button中image和title的布局.如果对其理解不够深入,用纯数字进行布局管理,经过不断的调试,还是能 ...

  9. android使用镜像 Android sdk 和源码等

    HTTP Proxy Server:mirrors.neusoft.edu.cn HTTP Proxy Port :80

  10. iOS仿直播带有气泡动画的UIButton

    现在直播软件确实很火,因为需要就写了一个带有动画气泡的按钮,代码中的部分动画有参考到其他童鞋,在这里万分感谢! .h文件 @interface YYBubbleButton : UIButton @p ...