http://www.cogs.pro/cogs/problem/problem.php?pid=7

★★   输入文件:mcst.in   输出文件:mcst.out   简单对比
时间限制:1.5 s   内存限制:128 MB

问题描述
假设要在n个城市之间建立通信联络网,则连通n个城市只需要n-1条线路。这时, 如何在最少经费的前提下建立这个通信网。在每两个城市之间都可以设置—条线路,相应地都要付出一定的经济代价。n个城市之间,最多可能设置n(n- 1)/2条线路,那么,如何在这些可能的线路中选择n-1条,以使总的耗费最少呢?
 
【输入格式】
输入文件有若干行
第一行,一个整数n,表示共有n个城市
第2--n+1行,每行n个数,分别表示该城市与其它城市之间路线的费用,如果城市间不能建立通信则用-1表示
 
【输出格式】
一行,1个整数,表示最少总费用
 
【输入输出样例】
 
输入文件
 

-1 5 -1 -1 -1 -1 
5 -1 50 -1 -1 10
-1 50 -1 20 10 -1
-1 -1 20 -1 60 30
-1 -1 10 60 -1 100
-1 10 -1 30 100 -1
 
输出文件
 
75
 
【数据规模】
 
对于40%的数据,保证有n<100: 
对于60%的数据,保证有n<256; 
对于全部的数据,保证有n<=1501。
 
 #include<algorithm>
#include<cstdio> using namespace std; const int N();
int n,tot,fa[N];
struct Edge
{
int u,v,w;
} edge[N*N>>];
bool cmp(Edge a,Edge b)
{
return a.w<b.w;
} int find(int x)
{
return fa[x]==x?x:fa[x]=find(fa[x]);
} inline void read(int &x)
{
x=; int if_=;char ch=getchar();
for(; ch<''||ch>''; ch=getchar()) if(ch=='-') if_=;
for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
x=!if_?x:((~x)+);
} int main()
{
freopen("mcst.in","r",stdin);
freopen("mcst.out","w",stdout);
read(n);
for(int x,i=; i<=n; i++)
for(int j=; j<=n; j++)
{
read(x);
if(x!=-)
{
edge[++tot].u=i,
edge[tot].v=j;
edge[tot].w=x;
}
}
for(int i=; i<=n; i++) fa[i]=i;
sort(edge+,edge++tot,cmp);
int cnt=,ans=;
for(int i=; i<=tot; i++)
{
int x=edge[i].u,y=edge[i].v;
int fx=find(x),fy=find(y);
if(fx==fy) continue;
fa[fx]=fy;
ans+=edge[i].w;
if(++cnt==n-) break;
}
printf("%d",ans);
return ;
}

COGS——T 7. 通信线路的更多相关文章

  1. cogs——7. 通信线路

    7. 通信线路 ★★   输入文件:mcst.in   输出文件:mcst.out   简单对比时间限制:1.5 s   内存限制:128 MB 问题描述 假设要在n个城市之间建立通信联络网,则连通n ...

  2. cogs 7. 通信线路

    7. 通信线路 ★★   输入文件:mcst.in   输出文件:mcst.out   简单对比时间限制:1.5 s   内存限制:128 MB 问题描述 假设要在n个城市之间建立通信联络网,则连通n ...

  3. 【COGS 254】【POI 2001】交通网络图

    http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...

  4. 【COGS】894. 追查坏牛奶

    http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...

  5. 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)

    http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...

  6. 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)

    http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...

  7. 【COGS & USACO】896. 圈奶牛(凸包)

    http://cojs.tk/cogs/problem/problem.php?pid=896 我的计算几何入门题... 看了看白书的计算几何部分,,恩好嘛.. 乃们都用向量!!!! 干嘛非要将2个点 ...

  8. 【COGS】714. USACO 1.3.2混合牛奶(贪心+水题)

    http://cojs.tk/cogs/problem/problem.php?pid=714 在hzwer的刷题记录上,默默地先跳过2题T_T...求凸包和期望的..T_T那是个啥..得好好学习 看 ...

  9. Cogs 97. [NOIP2007] 树网的核 Floyd

    题目: http://cojs.tk/cogs/problem/problem.php?pid=97 97. [NOIP2007] 树网的核 ★☆   输入文件:core.in   输出文件:core ...

随机推荐

  1. Linux经常使用命令(九) - cat

    cat命令的用途是连接文件或标准输入并打印.这个命令经常使用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1. 命令格式: cat [选项] 文 ...

  2. jsoncpp-src-0.5.0.tar.gz 源码错误!!!!

    近期在做毕设,使用到了JsonCpp0.5.0版本号的源码! 依照网上的安装配置教程,搭建好环境后就能够使用了! 在这里就不浪费空间去将怎样搭建开发环境了!请大家去google一下就好了! 在解析一个 ...

  3. POJ 题目3321 Apple Tree(线段树)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21566   Accepted: 6548 Descr ...

  4. Constructor call must be the first statement in a constructor

    super()和this ()不能共存.否则编译时会报异常. Constructorcall must be the first statement in a constructor 换句话说就是su ...

  5. CodedUI自己主动化測试及脱离VS独立执行

    在VS中可创建"编码的UI測试".可录制软件操作,再回放,最后还能够脱离VS独立执行. 在VS中执行測试 创建项目codeuitest,控件布局.例如以下图: 在button单击事 ...

  6. Find or Query Data with C# Driver

    https://docs.mongodb.com/getting-started/csharp/query/ Overview You can use the Find and FindAsync m ...

  7. PostgreSQL Replication之第六章 监控您的设置(4)

    6.4 处理监控工具 还有几个监控工具可以使您的日常生活更轻松. 其中最流行的监控工具是Nagios.它被广泛地使用,也支持各种软件组件. 要使用 Nagios 来监控您的 PostgreSQL 集群 ...

  8. 12 条实用的 zypper 命令范例 (转载)

    12 条实用的 zypper 命令范例 作者: Kerneltalks 译者: LCTT cycoe | 2018-12-12 13:29 zypper 是 Suse Linux 系统的包和补丁管理器 ...

  9. Linux FTP客户端

    1.File Zilla File Zilla是一个开源的,跨平台的Linux FTP客户端.File Zilla有一个标签式的用户界面,允许用户查看正在传输的文件的所有细节.File Zilla是通 ...

  10. js对浏览器产生的影响

     Js 是单线程执行引擎.在我们动态修改一些属性时会产生两种效果:    1.Repaint ----- 一部分重画,修改 div 的颜色呀,但是尺寸没有改变.    2.Reflow ---- 元素 ...