【持续更新】最小生成树题目集合
(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;
}
【持续更新】最小生成树题目集合相关推荐
- 【PAT】PAT甲级题库所有题解(持续更新中...)
题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...
- 西电2020 python OJ作业(50道题目,持续更新)
西电2020 python OJ作业(50道题,持续更新) 0.A+B problem 题目描述 用来适应环境的题目,自然比较简单些. 计算2个整数的和.这两个整数都在1到1000之间. 输入 输入只 ...
- 动态规划题目汇总(持续更新)
动态规划题目汇总(持续更新) 目录 动态规划题目汇总(持续更新) 1. 钢条切割 问题描述 解法 2. 矩阵链乘法 问题描述 解法 3. 最长公共子序列 问题描述 解法 4. 无重复字符的最长子串 问 ...
- DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)
DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...
- Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
Dataset:数据集集合(NLP方向数据集)--常见的自然语言处理数据集大集合(建议收藏,持续更新) 目录 NLP数据集特点 常见的NLP数据集 1.生物数据集以及自然语言处理数据集 常见的使用案例 ...
- Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(持续更新)
Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(建议收藏,持续更新) 目录 CV常用数据集平台集合 Mendeley Data CAISA-Web ...
- Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)
Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...
- 网络流题目详讲+题单(提高版)(持续更新中......)
网络流题目详讲+题单(提高版)(持续更新中......) 标签:图论--网络流 PS:如果你觉得自己还不够强(和我一样弱),可以去入门版看看 阅读体验:https://zybuluo.com/Junl ...
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)
计算机视觉.机器学习相关领域论文和源代码大集合--持续更新-- zouxy09@qq.com http://blog.csdn.net/zouxy09 注:下面有project网站的大部分都有pape ...
- PyCharm使用期间出现报错集合 持续更新ing
PyCharm使用期间出现报错集合 持续更新ing 啥时候用PyCharm发现了奇奇怪怪的错误就整理上来 这几天帮同学安装torch的时候出现了一些奇奇怪怪的问题 1.torch始终安装失败 描述一下 ...
最新文章
- python使用np.linspace函数生成均匀的浮点数列表实战:生成浮点数列表、生成浮点数列表(指定是否包含末尾值)
- MF训练套件(1):如何去除应用标题?
- 数据库技巧——MySQL十大优化技巧
- springboot入门知识点(一)
- java泛型数组替代方案_Kotlin泛型Array T导致“不能将T用作具体类型参数 . 使用类代替“但List T不会...
- Spark on K8S 的最佳实践和需要注意的坑
- iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...
- 1.9 _07 不与最大数相同的数字之和 python
- c语言排序算法_C语言写排序算法(二) —— 选择排序
- spring 中加载xml配置文件的方式
- 牛客网-C语言编程入门训练
- 「转」新手淘宝天猫小卖家开店,如何做好全盘运营?
- 还不重视!脸上有螨虫的几种表现?
- 安卓多人聊天室服务端
- 如何开张美国银行卡CitiBank
- python只读属性怎么设置_python 设置只读属性(property或者__setter__方法)
- 971: 统计利用先序遍历创建的二叉树的深度
- 性格色彩测试android程序开发之五--dialog事件的处理
- 默慈金数 (hdu3723)
- 华为od统一考试B卷【5键键盘】Java 实现
热门文章
- 面向对象闲话(一)——什么是对象
- Google提供的超强圆角效果
- QT + OSG实现触屏旋转和双指缩放
- PHP分类输出代码,PHP无限分类代码,支持数组格式化、直接输出菜单两种方式_php技巧...
- 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(五)
- java ocx调用_Javascript调用OCX控件
- docker搭建python开发环境_PyCharm使用之利用Docker镜像搭建Python开发环境
- 数据中心淘汰服务器,浅谈数据中心危机严重的程度
- 手把手带你用react hook撸一遍class组件的特性
- 【转】史上最简单的软件破解——5行脚本代码完美破解99%的过期软件