2013年10月16日

Building a Space Station

摘要: poj2031:http://poj.org/problem?id=2031题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。题解:其实就是图论的最小生成树问题球心坐标和半径是用来求 两点之间的边权 的,求出边权后,把球看做点,用邻接矩阵存储这个无向图,再求最小生成树,非常简单的水题把球A和球B看做无向图图的两个结点,那么边权 = AB球面距离 = A球心到B球心的距离 – A球半径 – B球半径 .注意若边权 2 #include 3 #inclu 阅读全文

posted @ 2013-10-16 16:58 天依蓝 阅读(118) 评论(0) 推荐(0) 编辑

Constructing Roads

摘要: poj2421:http://poj.org/problem?id=2421题意:这一题也是最小生成树,不过它要求修的路在下面还有一行是已经修的路所以将其权值赋值为零。题目给的数值的意思是每个点离其他点的距离 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int n,q,num,pa[102],cnt,sum; 8 int g[101][101],a,b; 9 struct Node{10 int u;11 int v;12 int w;13 boo... 阅读全文

posted @ 2013-10-16 16:53 天依蓝 阅读(145) 评论(0) 推荐(0) 编辑

Networking

摘要: poj1287:http://poj.org/problem?id=1287题意:平面上有许多点,又有许多边。每条边有一定的长度,且只会连接两个不同的点。现需要从这些边中选择某些边,使得尽可能多的点直接或间接相连。同时,又要选取的边的总长度最小。题解:本题就是去除重边,然后kruska运用。去重时候,我采用一个二维数组选取最小的边放进数组,然后遍历数组,如果有边则struct存入要处理的边。但是,看了别人的看法;程中可无视重边,因为排序之后,每次总是把最小的边加入,而且没两个点只能加一次,所以可以无视。 1 #include 2 #include 3 #include 4 #include 5 阅读全文

posted @ 2013-10-16 12:57 天依蓝 阅读(197) 评论(0) 推荐(0) 编辑

导航