(prim算法实现)

1)hdoj1233:还是畅通工程

赤裸裸的最小生成树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233

#include <iostream>
#include <vector>
#include <string.h>
#include <cmath>
#include <algorithm>
#define maxn 101
using namespace std;
int edges[maxn][maxn];
int main()
{int n,a,b,i,j,m,s,k;while(scanf("%d",&n) && n!=0){bool visit[maxn]={false};int lowcost[maxn];int ans=0;fill(edges[0],edges[0]+n*n,INT_MAX);m=n*(n-1)/2;for(i=0;i<m;i++){scanf("%d %d %d",&a,&b,&s);edges[a][b]=edges[b][a]=s;}visit[1]=true;for(i=1;i<=n;i++)lowcost[i]=edges[1][i];for(i=1;i<n;i++){int min=INT_MAX;k=-1;for(j=1;j<=n;j++){if(visit[j]==false && lowcost[j]<min){min=lowcost[j];k=j;}//最短边}visit[k]=true;ans+=lowcost[k];for(j=1;j<=n;j++){if(visit[j]==false && edges[k][j]<lowcost[j])lowcost[j]=edges[k][j];}}printf("%d\n",ans);}return 0;
}

2)hdoj1875:畅通工程再续

简单最小生成树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1875

#include <iostream>
#include <vector>
#include <string.h>
#include <cmath>
#include <algorithm>
#define maxn 105
using namespace std;
double dis[maxn][maxn];
struct Pos{int x,y;
}pos[maxn];
int main()
{int t,c,i,j;scanf("%d",&t);while(t--){int num=0;double ans=0;int visit[maxn]={0};double lowcost[maxn];scanf("%d",&c);for(i=1;i<=c;i++)scanf("%d %d", &pos[i].x, &pos[i].y);for(i=1;i<=c;i++){for (j = 1; j <= c; j++){if(i==j) continue;double dist = sqrt((pos[i].x - pos[j].x) * (pos[i].x - pos[j].x) + (pos[i].y - pos[j].y) * (pos[i].y - pos[j].y));if (dist <= 1000 && dist >= 10)dis[i][j] = dis[j][i] = dist;elsedis[i][j] = dis[j][i] = INT_MAX;}}visit[1]=1;num++;for(i=2;i<=c;i++)lowcost[i]=dis[1][i];for(i=1;i<c;i++){double min=INT_MAX-1.0;//lowcost的值或者<=1000h或者为INT_MAXint k=-1;for(j=1;j<=c;j++){if(visit[j]==0&&lowcost[j]<min)//且当前顶点中到j有符合条件的边{min=lowcost[j];k=j;}}if(k==-1) continue;visit[k]=1;num++;ans+=lowcost[k];for(j=1;j<=c;j++){if(visit[j]==0&&dis[k][j]<lowcost[j])lowcost[j]=dis[k][j];}}if(num!=c)printf("oh!\n");elseprintf("%.1f\n",ans*100);}return 0;
}

3)hdoj1879:继续畅通工程

巧妙设置小细节

http://acm.hdu.edu.cn/showproblem.php?pid=1879

#include <iostream>
#include <vector>
#include <string.h>
#include <cmath>
#include <algorithm>
#define maxn 105
using namespace std;
int state[maxn][maxn];
int edges[maxn][maxn];
int main()
{int n;while(scanf("%d",&n)&&n!=0){int i,a,b,s,c,j,k;int ans=0;int visit[maxn]={0};int lowcost[maxn],closest[maxn];//closest[I]记录连接I结点的另一端上的结点fill(edges[0],edges[0]+n*n,INT_MAX);int m=n*(n-1)/2;for(i=1;i<=m;i++){scanf("%d %d %d %d",&a,&b,&c,&s);if(s==1)edges[a][b]=edges[b][a]=0;//如果已经建立,那么就有限选这条边,置为0elseedges[a][b]=edges[b][a]=c;state[a][b]=state[b][a]=s;}visit[1]=1;for(i=2;i<=n;i++){lowcost[i] = edges[1][i];closest[i]=1;}for(i=1;i<n;i++){int min=INT_MAX-1;for(j=1;j<=n;j++){if(visit[j]==0&&lowcost[j]<min){min=lowcost[j];k=j;}}visit[k]=1;ans+=edges[closest[k]][k];for(j=1;j<=n;j++){if(visit[j]==0&&edges[k][j]<lowcost[j]){lowcost[j]=edges[k][j];closest[j]=k;}}}cout<<ans<<endl;}return 0;
}

【持续更新】最小生成树题目集合相关推荐

  1. 【PAT】PAT甲级题库所有题解(持续更新中...)

    题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...

  2. 西电2020 python OJ作业(50道题目,持续更新)

    西电2020 python OJ作业(50道题,持续更新) 0.A+B problem 题目描述 用来适应环境的题目,自然比较简单些. 计算2个整数的和.这两个整数都在1到1000之间. 输入 输入只 ...

  3. 动态规划题目汇总(持续更新)

    动态规划题目汇总(持续更新) 目录 动态规划题目汇总(持续更新) 1. 钢条切割 问题描述 解法 2. 矩阵链乘法 问题描述 解法 3. 最长公共子序列 问题描述 解法 4. 无重复字符的最长子串 问 ...

  4. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)

    DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...

  5. Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(NLP方向数据集)--常见的自然语言处理数据集大集合(建议收藏,持续更新) 目录 NLP数据集特点 常见的NLP数据集 1.生物数据集以及自然语言处理数据集 常见的使用案例 ...

  6. Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(持续更新)

    Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(建议收藏,持续更新) 目录 CV常用数据集平台集合 Mendeley Data CAISA-Web ...

  7. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  8. 网络流题目详讲+题单(提高版)(持续更新中......)

    网络流题目详讲+题单(提高版)(持续更新中......) 标签:图论--网络流 PS:如果你觉得自己还不够强(和我一样弱),可以去入门版看看 阅读体验:https://zybuluo.com/Junl ...

  9. 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)

    计算机视觉.机器学习相关领域论文和源代码大集合--持续更新-- zouxy09@qq.com http://blog.csdn.net/zouxy09 注:下面有project网站的大部分都有pape ...

  10. PyCharm使用期间出现报错集合 持续更新ing

    PyCharm使用期间出现报错集合 持续更新ing 啥时候用PyCharm发现了奇奇怪怪的错误就整理上来 这几天帮同学安装torch的时候出现了一些奇奇怪怪的问题 1.torch始终安装失败 描述一下 ...

最新文章

  1. python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
  2. MF训练套件(1):如何去除应用标题?
  3. 数据库技巧——MySQL十大优化技巧
  4. springboot入门知识点(一)
  5. java泛型数组替代方案_Kotlin泛型Array T导致“不能将T用作具体类型参数 . 使用类代替“但List T不会...
  6. Spark on K8S 的最佳实践和需要注意的坑
  7. iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...
  8. 1.9 _07 不与最大数相同的数字之和 python
  9. c语言排序算法_C语言写排序算法(二) —— 选择排序
  10. spring 中加载xml配置文件的方式
  11. 牛客网-C语言编程入门训练
  12. 「转」新手淘宝天猫小卖家开店,如何做好全盘运营?
  13. 还不重视!脸上有螨虫的几种表现?
  14. 安卓多人聊天室服务端
  15. 如何开张美国银行卡CitiBank
  16. python只读属性怎么设置_python 设置只读属性(property或者__setter__方法)
  17. 971: 统计利用先序遍历创建的二叉树的深度
  18. 性格色彩测试android程序开发之五--dialog事件的处理
  19. 默慈金数 (hdu3723)
  20. 华为od统一考试B卷【5键键盘】Java 实现

热门文章

  1. 面向对象闲话(一)——什么是对象
  2. Google提供的超强圆角效果
  3. QT + OSG实现触屏旋转和双指缩放
  4. PHP分类输出代码,PHP无限分类代码,支持数组格式化、直接输出菜单两种方式_php技巧...
  5. 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(五)
  6. java ocx调用_Javascript调用OCX控件
  7. docker搭建python开发环境_PyCharm使用之利用Docker镜像搭建Python开发环境
  8. 数据中心淘汰服务器,浅谈数据中心危机严重的程度
  9. 手把手带你用react hook撸一遍class组件的特性
  10. 【转】史上最简单的软件破解——5行脚本代码完美破解99%的过期软件