hdoj 1875 畅通工程再续
题目传送门:
http://acm.hdu.edu.cn/showproblem.php?pid=1875
//9403289 2013-10-24 17:00:49 Accepted 1875 62MS 376K 2205 B C++ 空信高手
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
#define typec double
#define V 101
const typec inf=;
int vis[V];
typec lowc[V],cost[V][V];
typedef struct
{
int x;
int y;
} POINT;
POINT pnts[V];
/*=================================================*\
| Prim求MST
| INIT: cost[][]耗费矩阵(inf为无穷大);
| CALL: prim(cost, n); 返回-1代表原图不连通;
\*==================================================*/
typec prim(int n)
{
int i,j,p;
typec minc,res=;
memset(vis,,sizeof(vis));
vis[]=;
for(i=; i<n; i++) lowc[i]=cost[][i];
for(i=; i<n; i++)
{
minc=inf;
p=-;
for(j=; j<n; j++)
{
if(==vis[j]&&minc>lowc[j])
{
minc=lowc[j];
p=j;
}
}
if(inf==minc) return -;
res+=minc;
vis[p]=;
for(j=; j<n; j++)
if(==vis[j]&&lowc[j]>cost[p][j])lowc[j]=cost[p][j];
}
return res;
} double calDis(POINT a,POINT b)
{
return sqrt(double((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));
}
void Init()
{
int i,j;
for(i=; i<V; i++)
for(j=; j<V; j++)
cost[i][j]=;
}
int main()
{
// freopen("input.txt","r",stdin);
int n,i,j;
while(cin>>n&&n!=)
{
while(n--)
{
int m;
double Sum=;
cin>>m;
Init();
//memset(cost,inf,sizeof(cost)); for(i=; i<m; i++)
cin>>pnts[i].x>>pnts[i].y;
for(i=; i<m; i++)
for(j=; j<m; j++)
{
if(calDis(pnts[i],pnts[j])<=1000.000001&&calDis(pnts[i],pnts[j])>=10.000000)
cost[i][j]=calDis(pnts[i],pnts[j]);
}
// if(!flag) cout<<setiosflags(ios::fixed)<<setprecision(1)<<prim(m)*100<<endl;
// else cout<<"oh!"<<endl;
Sum=prim(m);
if(Sum<) cout<<"oh!"<<endl;
else cout<<setiosflags(ios::fixed)<<setprecision()<<Sum*<<endl;
}
}
return ;
}
hdoj 1875 畅通工程再续的更多相关文章
- Hdoj 1875.畅通工程再续 题解
Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖 ...
- HDU 1875 畅通工程再续 (prim最小生成树)
B - 畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit S ...
- hdu 1875 畅通工程再续(prim方法求得最小生成树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1875 /************************************************* ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/M Description 相信大家都听说一个"百岛湖&q ...
- HDU 1875 畅通工程再续(kruskal)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdoj 1875 畅通project再续【最小生成树 kruskal && prim】
畅通project再续 Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其它的小岛时都要通过划小船来实现. ...
- HDU 1875 畅通工程再续 (Prim)
题目链接:HDU 1875 Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现 ...
- HDU - 1875 畅通工程再续
Problem Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问 ...
随机推荐
- Linux系统目录分析
Linux系统目录分析 /bin :系统指令目录(如ls.cp.mv等指令) /dev :系统设备目录 /home :系统用户的家,每一个系统用户都在此目录下有一个自己的家,每次登录时,系统都会自动登 ...
- Java中String类型的不可变性和驻留池
一 基本概念 可变类和不可变类(Mutable and Immutable Objects)的初步定义: 可变类:当获得这个类的一个实例引用时,可以改变这个实例的内容. 不可变类:不可变类的实例一但创 ...
- jexus 配置 学习
http://www.linuxdot.net/ 1.禁止或允许某IP或IP段访问网站 A.只允许某些IP地址访问网站(白名单功能) 默认情况下,允许所有IP地址访问.如果手工设置IP地址白名单, 那 ...
- silverlight 跳转指定的aspx页面
1.在xaml.cs中直接访问.并传递参数 System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(HtmlPage.Document.Docu ...
- php读取图片内容并输出到浏览器的实现代码
如果php以图片,zip,exe等文件输出到浏览器,而前面还输出了其他字符,就会有乱码. 代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径,费了点时间才搞定,原来 ...
- mysql删除、修改字段默认值
alter table表名alter column字段名drop default; (若本身存在默认值,则先删除) alter table 表名 alter column 字段名 set defaul ...
- [转]PLS-S-00201, identifier 'CALLDEMO.GET_EMPLOYEES' must be declared 预编译错误原因及解决办法
$ proc sample9.pc SQLCHECK=SEMANTICS Pro*C/C++: Release 11.2.0.1.0 - Production on Tue Jan 8 15:18:4 ...
- ActiveMQ之JMSReplyTo
在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个消费者来接受所回复的消息.import javax.jm ...
- return *this和return this的区别
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针). 正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回 ...
- C# 将cookiecontainer写到本地
public static void WriteCookiesToDisk(string file, CookieContainer cookieJar) { using(Stream stream ...