HZNU-ACM寒假集训Day8小结 最小生成树
最小生成树(无向图)
Kruskal
给所有边按从小到大排序 形成环则不选择(利用并查集)
P1546 最短网络 https://www.luogu.com.cn/problem/P1546
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
typedef long long ll;
using namespace std; struct Node {
int x, y, w;
friend bool operator < (const Node& a, const Node& b) {
return a.w < b.w;
}
}; Node a[];
int pre[]; int Find(int x) {
return pre[x] == x ? x : pre[x] = Find(pre[x]);
} int main() {
int n, k, cnt = ;
scanf("%d", &n);
for (int i = ; i < n; i++) {
pre[i] = i;
for(int j=;j<n;j++){
scanf("%d", &k);
if (j > i) { //矩阵只需判断一半
a[cnt].x = i;
a[cnt].y = j;
a[cnt++].w = k;
}
}
}
sort(a, a + cnt);
int ans = ;
int p = ;
for (int i = ; i <cnt; i++) {
if (Find(a[i].x) != Find(a[i].y)) {
ans += a[i].w;
pre[Find(a[i].x)] = a[i].y;
p++;
if (p == n - ) break;
}
}
printf("%d\n", ans);
return ;
}
HDU 1875 http://acm.hdu.edu.cn/showproblem.php?pid=1875
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
typedef long long ll;
using namespace std; struct Node {
int x, y;
double w;
friend bool operator < (const Node& a, const Node& b) {
return a.w < b.w;
}
}; Node a[]; //数组注意开大
int pre[];
double x[];
double y[]; int Find(int x) {
return pre[x] == x ? x : pre[x] = Find(pre[x]);
} double dis(double x1, double y1, double x2, double y2) {
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
int main() {
int T,c;
scanf("%d", &T);
while (T--) {
int cnt = ;
scanf("%d", &c);
for (int i = ; i < c; i++) {
pre[i] = i;
scanf("%lf%lf", &x[i], &y[i]);
for (int j = ; j < i; j++) {
double dist = dis(x[i], y[i], x[j], y[j]);
if(dist>=10.0&&dist<=1000.0){
a[cnt].x = i;
a[cnt].y = j;
//printf("%d %d\n", a[cnt].x, a[cnt].y);
a[cnt++].w = dist;}
}
}
sort(a, a + cnt);
double ans = ;
int p = ;
for (int i = ; i < cnt; i++) {
if (Find(a[i].x) != Find(a[i].y)) {
ans += a[i].w ;
pre[Find(a[i].x)] = a[i].y;
p++;
if (p == c - ) break;
}
}
if (p == c - ) printf("%.1f\n", ans*);
else printf("oh!\n");
}
return ;
}
HZNU-ACM寒假集训Day8小结 最小生成树的更多相关文章
- 中南大学2019年ACM寒假集训前期训练题集(基础题)
先写一部分,持续到更新完. A: 寒衣调 Description 男从戎,女守家.一夜,狼烟四起,男战死沙场.从此一道黄泉,两地离别.最后,女终于在等待中老去逝去.逝去的最后是换尽一生等到的相逢和团圆 ...
- 中南大学2019年ACM寒假集训前期训练题集(入门题)
A: 漫无止境的八月 Description 又双叒叕开始漫无止境的八月了,阿虚突然问起长门在这些循环中团长哪几次扎起了马尾,他有多少次抓住了蝉等等问题,长门一共回复n个自然数,每个数均不超过1500 ...
- HZNU-ACM寒假集训Day3小结 搜索
简单搜索 1.DFS UVA 548 树 1.可以用数组方式实现二叉树,在申请结点时仍用“动态化静态”的思想,写newnode函数 2.给定二叉树的中序遍历和后序遍历,可以构造出这棵二叉树,方法是根据 ...
- HZNU-ACM寒假集训Day1小结 STL 并查集
常用STL 1.优先队列 priority_queue 内部是用堆(heap)实现的 priority_queue<int> pq; 默认为一个“越小的整数优先级越低的优先队列” 对于一些 ...
- HZNU-ACM寒假集训Day12小结 数论入门 题解
算不出的等式 BJOI2012 看到这题 真没什么办法 无奈看题解 1.注意到p/q 联想到斜率 2.注意到 [ ] 联想到整点 注意到k在变化,构造一次函数 f(x)=p/q*x ,g(x)=q/p ...
- HZNU-ACM寒假集训Day12小结 数论入门
符号说明 a|b a整除b (a,b) a与b的最大公因数 [a,b] a与b的最小公倍数 pα||a pα|a但pα+1∤a a≡b(mod m) a与b对模m同余 a ...
- HZNU-ACM寒假集训Day11小结 贪心
1.刘汝佳紫书区间问题三大情况 1.选择不相交区间 贪心策略:一定要选择第一个区间 2.区间选点问题 贪心策略:取最后一个点 3.区间覆盖问题: n个闭区间,选择尽量少的区间覆盖一条指定线段[s,t] ...
- HZNU-ACM寒假集训Day10小结 单调栈-单调队列
数据结构往往可以在不改变主算法的前提下题高运行效率,具体做法可能千差万别,但思路却是有规律可循 经典问题:滑动窗口 单调队列O(n) POJ 2823 我开始写的: TLE 说明STL的库还是有点慢 ...
- HZNU-ACM寒假集训Day10小结 树-树形DP
树形DP 加分二叉树 洛谷P1040 注意中序遍历的特点:当根节点编号k时,编号小于k的都在其左子树上,编号大于k的都在右子树 转移方程 f[i,j]=max{f[i,k-1]*f[k+1,j]+d[ ...
随机推荐
- 有时间会做系列一(Dice)
题目大意:给n个骰子的每面安排点数,第i个骰子有a[i]面,a[i]和为m,点数范围从1到m,不重复.问怎么安排掷骰子的点数和的期望最大.输出期望和每个骰子的点数(按骰子输入顺序). 思路: EX=x ...
- Windows驱动开发-_DRIVER_OBJECT结构体
每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载的时候,被内核中的对象管理程序所创建的,内核对一个驱动只加载一个实例,是由内核中的I/O管理器负责加载的,驱动程序需要在Driver ...
- Day6-T2
原题目 给你一个长度为n的序列A,请求出最大的一对数(Ai ,Aj),使Ai&Aj最大. 第一行为n,接下来n行,每一个数表示Ai. 输出最大的“and”. S1: Input: Output ...
- 云时代架构阅读笔记十六——Hystrix理解
背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务.如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服 ...
- uboot的环境变量
https://www.cnblogs.com/biaohc/p/6398515.html uboot 环境变量实现原理: 首先我们先要搞清楚uboot中环境变量的作用,uboot中环境变量的作用就是 ...
- 零距离初体验uboot
一.uboot配置编译步骤 1.开发板光盘的BSP 2.复制到虚拟机,tar -jxvf qt_x210v3_130807.tar.bz2 3.配置:make x210_sd_config 4.出现C ...
- 模拟一次sql注入攻击
在你的web服务目录下 创建一个php文件如下 <?php $conn = db_connect(); $sql = sprintf('update users set password = & ...
- 区块链技术核心概念与原理讲解-Tiny熊
转载自简书ceido:https://www.jianshu.com/u/fcdf49ef65bb (1)区块链前世今生 密码朋克(Cypherpunk):是一个邮件组,里面有许多大牛. 区块链不是单 ...
- Spring 配置Beans
<bean id="UserDao" class="com.jikexueyuan.dao.impl.UserDaoImpl"> <prope ...
- 08 SSM整合案例(企业权限管理系统):05.SSM整合案例的基本介绍
04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.权限控制 09.用户和角色操作 10.权限关联 11.AOP日志 05.SSM整合案例的基本介绍 ...