题目:

There exists a world within our world
A world beneath what we call cyberspace.
A world protected by firewalls,
passwords and the most advanced
security systems.
In this world we hide
our deepest secrets,
our most incriminating information,
and of course, a shole lot of money.
This is the world of Swordfish.

We
all remember that in the movie Swordfish, Gabriel broke into the World
Bank Investors Group in West Los Angeles, to rob $9.5 billion. And he
needed Stanley, the best hacker in
the world, to help him break into the password protecting the bank
system. Stanley's lovely daughter Holly was seized by Gabriel, so he had
to work for him. But at the last moment, Stanley made some little trick
in his hacker mission: he injected a trojan
horse in the bank system, so the money would jump from one account to
another account every 60 seconds, and would continue jumping in the next
10 years. Only Stanley knew when and where to get the money. If Gabriel
killed Stanley, he would never get a single
dollar. Stanley wanted Gabriel to release all these hostages and he
would help him to find the money back.
  You
who has watched the movie know that Gabriel at last got the money by
threatening to hang Ginger to death. Why not Gabriel go get the money
himself? Because these money keep jumping,
and these accounts are scattered in different cities. In order to
gather up these money Gabriel would need to build money transfering
tunnels to connect all these cities. Surely it will be really expensive
to construct such a transfering tunnel, so Gabriel
wants to find out the minimal total length of the tunnel required to
connect all these cites. Now he asks you to write a computer program to
find out the minimal length. Since Gabriel will get caught at the end of
it anyway, so you can go ahead and write the
program without feeling guilty about helping a criminal.

Input:
The
input contains several test cases. Each test case begins with a line
contains only one integer N (0 <= N <=100), which indicates the
number of cities you have to connect. The next
N lines each contains two real numbers X and Y(-10000 <= X,Y <=
10000), which are the citie's Cartesian coordinates (to make the problem
simple, we can assume that we live in a flat world). The input is
terminated by a case with N=0 and you must not print
any output for this case.

Output:
You
need to help Gabriel calculate the minimal length of tunnel needed to
connect all these cites. You can saftly assume that such a tunnel can be
built directly from one city to another.
For each of the input cases, the output shall consist of two lines: the
first line contains "Case #n:", where n is the case number (starting
from 1); and the next line contains "The minimal distance is: d", where d
is the minimal distance, rounded to 2 decimal
places. Output a blank line between two test cases.

Sample Input:

5
0 0
0 1
1 1
1 0
0.5 0.5
0

Sample Output:

Case #1:
The minimal distance is: 2.83

题意描述:
题目描述的很有意思(大部分都是跟题无关的废话),简单来说给你N个点的坐标,让你计算它们的最小生成树的距离。
解题思路:
将数据转化成邻接矩阵,使用Prim算法即可。
代码实现:
 #include<stdio.h>
#include<math.h>
#include<string.h>
struct n
{
double x,y;
int find;
};
int main()
{
int n,i,j,book[],count,k,t=;
double e[][],dis[],sum,min;
struct n c[];
while(scanf("%d",&n),n != )
{
for(i=;i<=n;i++)
scanf("%lf%lf",&c[i].x,&c[i].y);
for(i=;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(i==j)
e[i][j]=;
else
{
e[i][j]=sqrt((c[i].x-c[j].x)*(c[i].x-c[j].x)+(c[i].y-c[j].y)*(c[i].y-c[j].y));
e[j][i]=e[i][j];
}
}
}
memset(book,,sizeof(book));
for(i=;i<=n;i++)
dis[i]=e[][i];
book[]=;
sum=;//sum 初始化
count=;//count 初始化
count++;
while(count < n)
{
min=;
for(i=;i<=n;i++)
{
if(!book[i] && dis[i]<min)
{
min=dis[i];
j=i;
}
}
book[j]=;
count++;
sum += dis[j];
for(k=;k<=n;k++)
{
if(!book[k] && dis[k] > e[j][k])
dis[k]=e[j][k];
}
} if(t != )
printf("\n");
printf("Case #%d:\nThe minimal distance is: %.2lf\n",++t,sum); }
return ;
}

易错分析:

1、很无奈,初始化问题要牢记。

2、格式问题

ZOJ 1203 Swordfish的更多相关文章

  1. ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法

    主题链接:problemId=203" target="_blank">ZOJ 1203 Swordfish 旗鱼 Swordfish Time Limit: 2 ...

  2. ZOJ 1203 Swordfish(Prim算法求解MST)

    题目: There exists a world within our world A world beneath what we call cyberspace. A world protected ...

  3. ZOJ 1203 Swordfish MST

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203 大意: 给出一些点,求MST 把这几天的MST一口气发上来. kru ...

  4. zoj 1203 Swordfish prim算法

    #include "stdio.h". #include <iostream> #include<math.h> using namespace std; ...

  5. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  6. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  7. [zoj解题] 1203

    #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAXN 100 #define ...

  8. ZOJ题目分类

    ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 13 ...

  9. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

随机推荐

  1. 数据库SQL优化

    1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  2. 图解JQUERY尺寸及位置定义

    最近在学习JQUERY的一些应用,接触到了JQUERY对于元素尺寸及位置定义,还有就是配合浏览器尺 寸及状态的计算所做出的一些动画特效.其实像这类JQUERY应用无外乎涉及这些属性的调用:innerH ...

  3. 8、公司的上市问题 - CEO之公司管理经验谈

    在公司发展到一定阶段之后,CEO就能够考虑公司上市的问题了.一条线路,就是先成立公司,进行投资,然后上市赚取利润,根据不同公司的总经理的想法不同而定.这条路是现在很多公司领导要求的做法.因为,通过发行 ...

  4. linux编译php gd扩展

    1 安装gd的依赖包 yum -y install gd gd2 gd-devel gd2-devel zlib freetype 2 安装jpeg: wget http://www.ijg.org/ ...

  5. CSS开发规范

    虽然很久之前整理过一份简单的CSS规范,但是当时写的也不是很全面,有些细节也没有照顾到.记录一份较详细的版本,以备不时之需. 命名规范 [强制] class一律使用小写字母+下划线格式命名 例: cl ...

  6. alpha rarefaction using qiime

    shannon菌群多样性指数 H=-∑(Pi)(㏑Pi) Pi=样品中属于第i种的个体的比例,如样品总个体数为N,第i种个体数为ni,则Pi=ni/N: 各种之间,个体分配越均匀,H值就越大.如果每一 ...

  7. JSP EL隐含对象

    JSP 内置对象 JSP EL隐含对象 描述 page pageScope page 作用域 request requestScope request 作用域 session sessionScope ...

  8. CHECKDB内部:什么是BlobEater?

    DBCC CHECKDB注意到有关数据文件页面.一旦整个表的所有页(或一组表,如果配料已启用-看到同样的博客文章我上面提到的),所有的事实都聚集在一起,他们都应该相互抵消.当有额外的事实(在索引B树都 ...

  9. Gson的学习与使用

    Gson介绍: GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串. 特点: a ...

  10. (GO_GTD_2)基于OpenCV和QT,建立Android图像处理程序

    一.综述     如何采集图片?在windows环境下,我们可以使用dshow,在linux下,也有ffmpeg等基础类库,再不济,opencv自带的videocapture也是提供了基础的支撑.那么 ...