博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2075
阅读量:5260 次
发布时间:2019-06-14

本文共 2137 字,大约阅读时间需要 7 分钟。

POJ2075是到PRIM练习题,但是很坑爹。有个很奇怪的问题就是:输出浮点数%.1f就过 %.1lf就不过。如果有人知道原因,请一定告知!不知道是不是.1f是四舍五入的 %.1lf是取floor的?
 
#include 
#include
#include
using std::memset;const int MAX = 1005;double totallength;double map[MAX][MAX];char house[MAX][30];int n,m;double prim(){ bool visit[MAX]; double dis[MAX]; memset(visit, 0, sizeof(visit)); for(int i = 0 ; i < n; i++) dis[i] = -1; dis[0] = 0; double ans = 0; for(int i = 0 ; i< n; i++) { //find mingap double mindis = INT_MAX; int minindex = -1; for(int j = 0 ; j < n; j++) { if(!visit[j] && dis[j]!= -1 && mindis > dis[j]) { mindis = dis[j]; minindex = j; } } visit[minindex] = 1; ans += mindis; int from = minindex; for(int to = 0 ; to < n; to++) { if(visit[to]) continue; if(map[from][to] == 0) continue; if(dis[to] == -1 || map[from][to] < dis[to]) { dis[to] = map[from][to]; } } } return ans;}int main(){ while(scanf("%lf", &totallength)!=EOF) { scanf("%d", &n); for(int i = 0 ; i< n; i++) scanf("%s", house[i]); scanf("%d", &m); for(int i = 0 ; i < m; i++) { char house1[30], house2[30]; double length; scanf("%s %s %lf", &house1, &house2, &length); int house1index, house2index; for(int j = 0 ; j < n; j++) { if(strcmp(house1, house[j]) == 0) house1index = j; } for(int j = 0 ; j < n; j++) { if(strcmp(house2, house[j]) == 0) house2index = j; } map[house1index][house2index] = length; map[house2index][house1index] = length; } double ans = prim(); if(ans > totallength) printf("Not enough cable\n"); else printf("Need %.1f miles of cable\n", ans); }}

 

 

转载于:https://www.cnblogs.com/wead-hsu/p/3712290.html

你可能感兴趣的文章
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>