HDU 5441 离线处理+并查集

DCA1000EVM数据采集实战:从mmWave Studio配置到MATLAB后处理的全链路解析 本文详细解析了DCA1000EVM数据采集的全流程,从mmWave Studio配置到MATLAB后处理,涵盖数据存储结构解析、后处理引擎剖析及Python数据处理方案。通过实战案例,帮助开发者高效处理毫米波雷达原始数据,实现从数据到应用价值的转化,提升开发效率。 阅读详情
并查集+离线处理

代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
#define maxm 100002
#define maxn 20002
#define maxq 5002
int set[maxn];
int size[maxn];//结点数
struct que
{
	int q, i;
	long long ans;
}ques[maxq];
bool cmpp1(que a,que b)
{
	return a.q < b.q;
}
bool cmpp2(que a, que b)
{
	return a.i < b.i;
}
struct edge
{
	int v, i, j;
	void init(int a, int b, int x)
	{
		if (a < b)
		{
			i = a; j = b;
		}
		else
		{
			i = b; j = a;
		}
		v = x;
	}
};
edge a1[maxm], a2[maxm];
bool cmp1(edge a, edge b)
{
	if (a.i < b.i)
		return true;
	else if (a.i == b.i&&a.j < b.j)
		return true;
	else
		return false;
}
bool cmp2(edge a, edge b)
{
	return a.v < b.v;
}
int upperbound(edge *A, int x, int y, int v)
{
	int m;
	while (x < y)
	{
		m = x + (y - x) / 2;
		if (A[m].v <= v)
			x = m + 1;
		else
			y = m;
	}
	return x;
}
void init_set()
{
	for (int i = 0; i<maxn; ++i)
	{
		set[i] = i;
		size[i] = 1;
	}
}
int findSet(int x)//路径压缩
{
	if (x == set[x])
		return x;
	else
		return set[x] = findSet(set[x]);
}
void unionSet(int x, int y)//启发式合并
{
	int fx = findSet(x);
	int fy = findSet(y);
	if (fy == fx)
		return;
	if (size[fx] >= size[fy])
	{
		size[fx] += size[fy];
		set[fy] = fx;
	}
	else
	{
		size[fy] += size[fx];
		set[fx] = fy;
	}
}
int main()
{
	//freopen("input.txt", "r", stdin);
	int T;
	scanf("%d", &T);
	while (T--)
	{
		int n, m, q, a, b, c;
		long long ans = 0, t;
		scanf("%d%d%d", &n, &m, &q);
		for (int i = 0; i < m; ++i)
		{
			scanf("%d%d%d", &a, &b, &c);
			a1[i].init(a, b, c);
		}
		sort(a1, a1 + m, cmp1);
		a = 0, b = 0;
		int m2 = 0;
		for (int i = 0; i < m; ++i)
		{
			if (a1[i].i == a&&a1[i].j == b)
				a2[m2 - 1].v = min(a1[i].v, a2[m2 - 1].v);
			else
			{
				a2[m2++] = a1[i];
				a = a1[i].i, b = a1[i].j;
			}
		}
		sort(a2, a2 + m2, cmp2);
		for (int i = 0; i < q; ++i)
		{
			scanf("%d", &ques[i].q);
			ques[i].i = i;
			ques[i].ans = 0;
		}
		sort(ques, ques + q, cmpp1);
		init_set(); a = 0;
		for (int i = 0; i < q; ++i)
		{
			b = upperbound(a2, 0, m2, ques[i].q);
			//printf("b %d\n", b);
			for (int j = a; j < b; ++j)
			{
				unionSet(a2[j].i, a2[j].j);
			}
			for(int j = 1; j <= n; ++j)
			{
				if (set[j] == j&&size[j] > 1)
				{
					t = size[j];
					ques[i].ans += t*(t - 1);
					//printf("t %lld\n", t);
					//printf("ans %lld\n", ques[i].ans);
				}
			}
			a = b;
		}
		sort(ques, ques + q, cmpp2);
		for (int i = 0; i < q; ++i)
			printf("%lld\n", ques[i].ans);
	}
	//system("pause");
	//while (1);
	return 0;
}

[调参神器]使用VOFA+上位机进行PID调参(附下位机代码) ​ 简单地来说,VOFA+是一个超级串口助手,除了可以实现一般串口助手的串口数据收发,它还可以实现数据绘图(包括直方图、FFT图),控件编辑,图像显示等功能。​ 如果只是想要用VOFA+来进行数据绘图,直接使用一个波形图控件就行,但是如果想要把VOFA+当作一个长期使用的调参助手,我们最好设置一下控件。VOFA+简洁好用,但是又有点太简洁了,部分体验并不是很好(比如不能调整控件大小,保存文件不太方便等),所以如果学有余力,推荐自己用QT/PyQT写上位机。接下来,我们要将指令中的数据提取出来。 阅读详情

相关推荐

西安电子科技大学841学长经验分享(总成绩第三名)

西安电子科技大学841学长经验分享(总成绩第三名)

qq_30953547的博客 1082

并查集(hdu 5441)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5441 题意:给定一些城市,城市间带距离的路连接,一个懒人要去旅游,带不想走太远,给定一个最大忍耐距离,要求他去的城市间不能超过这个距离,a-->b算一条,反过来也算,如果3个城市联通的,那他可以去的城市为3*2=6,不联通的不算一起,分开算相加 题解:先根据输入的查询和边距进行排序,从小到

M_GSir的博客 560

Aspose Java 25.10 版本深度破解:基于字节码修改的实战指南

本文提供了Aspose Java 25.10版本基于字节码修改的实战指南。详细介绍了如何通过Javassist工具逆向分析并修改Aspose Cells、Words、Slides及PDF组件的许可证验证逻辑,从而实现绕过限制,并完成最终的打包与功能验证。

stone的博客 1351

HDU 5441

Problem Description Jack likes to travel around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There arencities andmbidirectional roads connecting the cit...

weixin_30753873的博客 141

python实现ECMS算法

ECMS(Equivalent Consumption Minimization Strategy)算法是一种用于混合动力汽车能量管理系统的优化策略。它通过计算等效油耗来平衡电池电量消耗和燃油消耗,从而优化整体能耗。以下是一个简单的Python实现,用于演示ECMS算法的基本思想。这个实现假设了一个简单的混合动力汽车模型,其中电池电量和燃油消耗是主要的优化目标。

weixin_45570158的博客 922

使用VNC可视化Docker容器

Docker容器可视化

Robert_Q的博客 1万+

离线+并查集 hdu5441 Travel

传送门:点击打开链接 题意:给n个点,m条有权值的无向边,求存在多少个点(a,b) (a!=b),使得a到b至少有一条路径上的边最大权值小于等于x 思路:将边读入排序,再先将x排序,初始化并查集,用并查集维护一个联通分量中的点的个数,让ans等于0 按照边的权值从小到大添加边到图中,首先考虑如何更新ans 添加的某条边如果是(u,v),如果u和v本身就连通了,那么再添加这条边并不会改变an

qwb的博客 995

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑

SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 181

hdu5441Travel

并查集加离线处理#include<bits/stdc++.h> using namespace std; const int maxn=5000+10; int f[20100]; int count1[maxn]; int num[4*maxn];struct Edge{ int from,to,dis; }e[100100];struct node{ int num; i

_zidaoziyan的博客 587

LVGL core disp显示设计(lv_disp.c)

lv_disp.c当前显示页面的配置scr_act在原始的LVGL是以screen的概念存在,但我们还是习惯叫它为一个页面提供获取top_layer、sys_layer、prev_scr图层接口配置主题管理默认的主题管理是递归查找的,实际项目中因此页面的复杂性,虽然也兼容了此主题管理的方案,但还是推荐使用单页面自行管理主题的方案壁纸设置多页面切换的动画支持计算无用户操作时间清理显示缓存。

Bigan(安)的博客 2330

【无人机路径规划】基于强化学习实现多无人机路径规划

【无人机路径规划】基于强化学习实现多无人机路径规划

k8291121的博客 1656

hdu5441(并查集+离线处理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5441 题意:   根据输入的三个整数n、m、q,表示有n座城市,m条路,q次询问。下面给出m行,每行三个数start、end、w,分别是这条道路的起点城市、终点城市、“权值”。然后给出q次询问的数值,每次询问的结果是符合条件的路有多少条。条件就是:如果这条路的权值比给的限制值要小,那么这...

dgbxssz959266的博客 271

IgH EtherCAT 从入门到精通:第 4 章 网络设备驱动选型与配置

摘要:本章详细介绍了EtherCAT主站网络设备驱动的选型与配置。IgH EtherCAT Master提供Generic通用驱动和Native原生驱动两种方案:Generic驱动通过Linux Socket接口实现,兼容性强但实时性较差;Native驱动通过修改网卡驱动绕过内核协议栈,具有更低延迟和更小抖动。文章具体分析了e1000/e1000e/igb/igc等Intel网卡驱动以及r8169/8139too等Realtek驱动的配置方法,并提供了驱动选型建议。对于实时性要求高的场景,推荐使用Nativ

从事嵌入式linux android驱动开发,拥有全栈能力 304

HDU 5441 离线处理 + 并查集

题意:给n个节点m条带权值边的无向图。然后q个问题,每次询问点对的数目,点对需要满足的条件是:1)连通;2)其路径的最大权值不能超过询问值。 分析:如果没次询问一次,dfs一次,很可能超时,因此可以用并查集。离线处理,把边按权值排序,把问题按大小排序。然后离线的过程就是不断向图中加边的过程。 比如样例如下: 然后离线处理,排完序后将会是一条一条的加边:问题也排了序,因此是个累加...

LYU0820的博客 211

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hdu 5441 离线处理+并查集

参考 点击打开链接 #include #include #include #include #include using namespace std; const int M=2*1e6+20; struct Query { int x,id; bool operator < ( const Query& a )const { retur

Masamiiiiii 430

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hdu5441 离线处理+并查集

题意  给你n个城市m个边,每条边有一权值,表示路费 如果给出一笔钱,钱大于路费则表示该条路可以通过 通过这条路 则代表 点 (a,b)  和(b,a)是合法的点,合法的对数为2 k次查询,每次查询给出一笔钱,求该笔钱能走过的所有点的合法对数 对输入的边按权值排序,对输入的钱数按权值排序 对第一笔钱,把权值比钱小的边 全都加到一个并查集, 设两

风一样的自由,色彩斑斓的雨季 428

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HDU 5441 Travel (离线处理+并查集)

Travel Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 2914    Accepted Submission(s): 998 Problem Description Jack likes to travel a

Interstellar_的博客 708

HDU - 5441

题目链接:HDU - 5441 显然可以按照边权离线,然后用并查集维护联通块的size即可。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int long long using namespace std; const int N=1e5+10; int n,m,Q,f[N],sz[N],res[N],now; struct node{int u,v,w

青烟绕指柔的博客 362

HDU - 5441 Travel 离线处理+并查集

题意给我们一个图 给出这个图的n个点 和m个边和权值 然后再分别给我们q个查询 每个查询给一个x 让我们在这个图中找出多少个不同的有序对 使得从x到y的最大权值不超过x n≤20000,m≤100000,q≤5000. 分析20000个点 1000ms 暴力肯定不行 看似这道题像是个图论的题 嘿嘿嘿 其实。。。 我们看 如何找出符合题目条件所需要的对数呢 我们如果对任意一个查询 我们对一条新的边

qq_33859479的博客 274

HDU 5441 Travel (并查集 离线处理)

题意:给你n个点,m条带权边,现在q次询问,每次询问给你一个val,让你求有多少对点能相连且路径上最大权不能 超过val。(ab和ba算两对)(n 思路:把每条边按权值从小到大排序,按每次询问val值从小到大排序,枚举询问时,不断加上 求得每次加一条边后新产生的点对。用一个数组num[i],来记录i这个联通块的点的数量。每次两个联通块相连,新增 加的点对数为num[a]*num[b

CillyB的博客 523

HDU5441(2015长春网赛)——Travel(并查集应用,离线处理)

Travel Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 3283    Accepted Submission(s): 1117 Problem Description Jack likes to tra

say_c_box的博客 591

HDU 5441 Travel(离线操作,并查集)

题目链接:HDU 5441 Travel 题目大意: 有一个n个点的无向图,给出m条边的边权,给出q次询问,每次给出一个值,求用到所有边权不大于这个值的边的情况下,能够互相到达的点对的个数(自己到自己不算) (a,b) (b,a) 不同当且仅当a!=b 当时做的时候思路很快就想出来了,就是每次把满足条件的点分成不同的集合,每个集合的点互相可达,每个集合正好构成无...

weixin_30767921的博客 88

hdu 5441 Travel(Kruskal+离线)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5441 题意: 给定N个顶点,M条边的一个无向图,Q个询问。 对于每个询问x,从a,b的路径上各边的最大权值小于x,可以记为有序对, 求这个图里面有多少个这样的有序对。 解题思路:kruskal思想+离线。首先把边从小到大排序,对于某个限制limit,如果边小于等于limit,则表示这条边是

hexianhao的博客 617

2015 ACM/ICPC Asia Regional Changchun Online HDU - 5441 (离线+并查集)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5441 题意:给你n,m,k,代表n个城市,m条边,k次查询,每次查询输入一个x,然后让你一个城市对(u,v)满足两点之间每一条边都不超过x,问有多少对 思路:首先我想到的是dfs求出每个查询小于等于他的一个连通块,然后num*(num-1)就是答案,但是时间只有一秒,这个复杂度是5*1e8,超时了(亲...

weixin_30451709的博客 113
上一篇: CodeForces Manthan, Codefest 16 A Ebony and Ivory 扩展欧几里德(其实暴力直接搞就可以)
下一篇: HDU 5444 二叉树
sky-edge
博客等级 码龄12年 20粉丝 191原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值