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

别再被海康VisionMaster标定搞懵了!固定相机视觉引导,从标定到示教保姆级避坑指南 本文详细解析了海康VisionMaster在固定相机视觉引导中的标定与示教全流程,特别针对单相机标定提供了精简高效的4图标定法。从标定板准备到示教物理点设置,再到坐标转换与误差补偿,提供了一套完整的保姆级避坑指南,帮助工程师快速掌握固定相机视觉引导系统的核心技术。 阅读详情

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 around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There are n cities and m bidirectional roads connecting the cities. Jack hates waiting too long on the bus, but he can rest at every city. Jack can only stand staying on the bus for a limited time and will go berserk after that. Assuming you know the time it takes to go from one city to another and that the time Jack can stand staying on a bus is x minutes, how many pairs of city (a,b) are there that Jack can travel from city a to b without going berserk?
 

Input
The first line contains one integer T,T≤5, which represents the number of test case.

For each test case, the first line consists of three integers n,m and q where n≤20000,m≤100000,q≤5000. The Undirected Kingdom has n cities and m bidirectional roads, and there are q queries.

Each of the following m lines consists of three integers a,b and d where a,b∈{1,...,n} and d≤100000. It takes Jack d minutes to travel from city a to city b and vice versa.

Then q lines follow. Each of them is a query consisting of an integer x where x is the time limit before Jack goes berserk.

 

Output
You should print q lines for each test case. Each of them contains one integer as the number of pair of cities (a,b) which Jack may travel from a to b within the time limit x.

Note that (a,b) and (b,a) are counted as different pairs and a and b must be different cities.
 

Sample Input
1 5 5 3 2 3 6334 1 5 15724 3 5 5705 4 3 12382 1 3 21726 6000 10000 13000
 

Sample Output
2 6 12
 题意:给你一个n个点m条边的无向图,问有多少个点对(a,b)满足从点a到点b的路长不超过d(不超过的意思是每一条路都不超过,但是总的路长可能超过)
思路:将要查询的值排序保存起来,然后按顺序查找,利用并查集,若某条边的两个点祖先不同,则增加的点对数就是两个点集合数目的乘积的两倍。
#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
using namespace std;
typedef long long ll;
typedef pair<int, int> P;
const int maxn = 1e5 + 10;
int pre[maxn], num[maxn];
ll ans[maxn];

struct Edge
{
    int from, to, value, color;
    Edge(int from = 0, int to = 0, int value = 0) : from(from), to(to), value(value){ color = 0; }
    void read()
    {
        scanf("%d%d%d",&from,&to,&value);
    }
    bool operator < (const Edge& b) const
    {
        return value < b.value;
    }
}edge[maxn];

struct Out
{
    int x, id;
    bool operator < (const Out& b) const
    {
        return x < b.x;
    }
}out[maxn];

int find(int x)
{
    return pre[x] == x ? x : pre[x] = find(pre[x]);
}

int main()
{
    int T;
    scanf("%d",&T);
    while(T--) {
        int n, m, q;
        scanf("%d%d%d",&n,&m,&q);
        for (int i = 0; i < m; i++) edge[i].read();
        for (int i = 0; i < q; i++) {
            scanf("%d",&out[i].x);
            out[i].id = i;
        }
        sort(edge, edge + m);
        sort(out, out + q);
        for (int i = 1; i <= n; i++) pre[i] = i, num[i] = 1;
        int j = 0;
        ll cnt = 0;
        for (int i = 0; i < q; i++) {
            while (j < m && edge[j].value <= out[i].x) {
                int x = edge[j].from;
                int y = edge[j].to;
                int fx = find(x), fy = find(y);
                if (fx != fy) {
                    cnt += (ll)num[fx] * num[fy] * 2;
                    pre[fy] = fx;
                    num[fx] += num[fy];
                }

                j++;
            }
            ans[out[i].id] = cnt;
        }
        for (int i = 0; i < q; i++)
            printf("%d\n",ans[i]);
    }
}


毕设助力!从0到1构建基于YOLO的家居安防异常活动监测系统,让你的毕设守护家庭安全 做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护生活”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了家居安防的哪些痛点、对比了不同YOLO模型的性能差异、系统未来能怎么优化(比如对接智能门锁/报警器、实现语音交互)。未来,这个系统还能往“更智能”的方向发展:比如结合行为分析判断异常意图、开发移动端APP实现全屋设备联动、在智慧社区中实现多家庭联防……想象空间很大。 阅读详情

相关推荐

解密美团外卖API:mtgsig和waimai_sign参数生成原理与Python实现

本文深入解析了美团外卖API中核心风控参数mtgsig和waimai_sign的生成原理与实现方法。文章详细拆解了waimai_sign作为业务数据签名、mtgsig作为请求环境签名的不同角色与生成逻辑,并通过Python代码示例演示了如何通过逆向工程、Frida动态Hook等技术手段模拟签名生成过程,为开发者理解移动端API安全机制提供了实战参考。

weixin_29325515的博客 553

【HDU 5441】Travel

Jack likes to travel around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There arenncities andmmbidirectional roads connecting the cities. Jack hat...

词庸 549

别再硬编码了!WinCC子画面动态加载的5种C脚本写法对比

本文深入解析WinCC子画面动态加载的5种C脚本实现方案,包括基础加载、路径动态解析、多语言切换、窗口自适应布局和混合架构交互。通过代码示例和场景分析,帮助开发者避免硬编码问题,提升工业自动化系统的交互效率和可维护性。特别推荐路径动态解析方案,有效解决项目路径管理的痛点。

weixin_29008691的博客 476

Travel HDU - 5441(技巧题,并查集)

题目 Jack likes to travel around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There are n cities and m bidirectional roads connecting the cities. Jack hate...

sunmaoxiang的博客 492

四参数与七参数坐标转换含义及区别

一.前言 不同坐标系,其椭球体的长半径,短半径和扁率是不同的。比如我们常用的四种坐标系北京54、西安80、WGS84、CGCS2000所对应的椭球体,它们的椭球体参数就各不相同。而不同空间直角坐标系之间的转换一般通过七参数或者四参数来实现坐标转换。 二.四参数转换 两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七参数转换的优势在于只需要2个公共已知点就能进行转换,操作简单。 在该模型中有四个未知参数,即: (1)两个坐标平...

尘海折柳的博客 1万+

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录引述斯皮尔曼相关系数(spearman)定义 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学习中我们发现,皮尔逊相关系数的使用条件相当苛刻:两组变量必须是连续数据、呈现正态分布,且两者间必须成线性关系。如果我们在数学建模中拿到一组数据无法满足以上条件,那么有没有其他的方法去判断两组变量之间的相关性呢?答案是肯定的,它就是斯皮尔曼相关系数(spearman). 斯皮尔曼相关系...

东 6万+

hdu 5441 Travel(带权并查集)

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 are n cities and m bidirectional roads connecting t

ZAQ的博客 2873

《数学建模与数学实验》第5版 线性规划 习题3.4

1. 某鸡场有1000只鸡,用动物饲料和谷物混合喂养. 2. 某工厂用A1,A2两台机床加工B1,B2,B3三种不同零件. 3. 某工厂利用两种原料甲、乙生产$A_1、A_2、A_3$三种产品. 4. 每班的护士在值班开始时向病房报到,连续工作8个小时. 5. 某工厂生产 A1 、A2 两种型号的产品 6. 有两个煤厂A,B 7. 某工厂制造三种产品,生产这三种产品需要三种资源 8. 已知某工厂计划生产1,2,3三种产品,各产品需要在ABC设备加工。...

hexiaosi_的博客 2万+

Travel HDU - 5441

http://acm.hdu.edu.cn/showproblem.php?pid=5441 每次一个询问 给一个x 用所给边中值小于等于x的构图 问有多少点对是互相可达的 x显然要离线处理 多少点对的问题可以想到并查集搞一下 #include &lt;bits/stdc++.h&gt; using namespace std; const int maxn=2e4+10; const i...

sunyutian1998的博客 251

科研——ICONIP论文修改和提交

ICONIP说明文档

Blackoutdragon的博客 6647

【SAP ME 3】JAVA 调用SAP PO WebService

Java调用SAP PO/PI WebService接口

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 847

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

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

qq_33859479的博客 274

Python 爬虫实战:全国高校录取分数线数据爬取与院校对比分析

本文介绍了一个基于Python的高考志愿填报辅助系统,通过爬取掌上高考平台的全国高校录取分数线数据,构建本地数据库并实现智能分析。系统主要功能包括:1)使用requests+BeautifulSoup爬取院校基本信息和历年分省分科类录取线;2)通过SQLite实现数据持久化与增量更新;3)利用pyecharts生成分数线趋势图、院校对比雷达图等可视化图表;4)提供"冲稳保"三档智能选校推荐。技术栈涵盖网络爬虫、数据清洗、数据库管理和可视化分析,可为考生提供数据驱动的志愿填报决策支持。项目采用模块化设计,包含

u014481728的博客 238

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

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

CillyB的博客 523

Camera2Demo

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

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

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

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

Winjourn的专栏 652

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU 5441 Travel 并查集

HDU 5441 Travel   题意:一张无向图,q个查询,对于每个x,有多少对点之间的路径中最长的一条路不大于x。 思路:比赛时王秋平写的,我补下题。这题也比较简单,将边排序,从小到大加到并查集,对查询也排序,从小到大对于每个查询把不大于x的边加到并查集,用cnt[y]记录以y为根的连通块有多少节点,那么在连通块发生 变化时,ans=2 * cnt[x] * cnt[y]  

Macan - 生活点滴 376

hdu 5441 Travel 排序 并查集

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

G.D.Retop的专栏 499

hdu5441 Travel

题目TravelProblem Description Jack likes to travel around the world, but he doesn’t like to wait. Now, he is traveling in the Undirected Kingdom. There are n cities and m bidirectional roads connecting

痕 1200

hdu 5441 Travel(生成树)

题目链接:hdu 5441 Travel 类似与最小生成树的算法,将边和询问分别按照权值排序,每次枚举一个询问,将小于该询问的边全部链接,并且计算ans。 #include #include #include #include using namespace std; typedef long long ll; const int maxn = 20005; con

不慌不忙、不急不躁 1088

离线+并查集 hdu5441 Travel

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

qwb的博客 995

[HDU 5441]Travel[并查集]

题目链接:[HDU 5441]Travel[并查集] 题意分析: Jack喜欢环游世界,现在给出多个城市ai到bi所需要的时间,Jack从一个城市到另一个城市有一个能够容忍的时间上限,超过这个上限,他就不走这条路线。问:给定一个Jack可以容忍的时间上限,Jack最多可以在多少个城市对(a,b)间进行旅行? 解题思路: 对城市间的距离进行排序,从小到大进行并查集的合并,如果有新的城市加入,

闲停 594

HDU 5441 Travel(并查集 离线查询)

题意:        给出一张带边权的无向图,q次查询,每次查询给出一权值,问保留图中小于等于该权值的边同时去除其他边后所产生的能相互到达的点对数(x,y)和(y,x)属于不同情况。 思路:        首先我们知道对于一个联通块来说,其中上述点对数就等于该联通块中节点的数目C(n,2)==n*(n-1)/2*2。所以可以考虑统计当前限制条件下各个联通块中点的数目,到这里我们会想到dfs划...

又菜又爱玩 224

HDU5441 Travel 并查集

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5441 题目大意:n个顶点m条边的有向图G代表n个城市和之间的m条道路,边权w代表走过该边需要的时间,每个顶点都可以休息,给出q次询问,每次询问给出一个时间限制x,问你在每次连续行走都不超过x的时间段内,最多有多少个可以到达的城市对。(u,v)和(v,u)属于不同的城市对,当且仅当u!=v.

AC_Gibson的专栏 676

HDU5441 Travel 并查集

http://acm.hdu.edu.cn/showproblem.php?pid=5441 无向图,n个点,m条带权边,q次询问,给出数值d,点a可以到点b当且仅当存在一条路线其中最大的权值不超过d。 用sum记录连通块节点个数,两个连通块合并,结果增加( sum[a] + sum[b] ) * ( sum[a] + sum[b] - 1 ) - sum[a] * ( s

West___wind的博客 344
上一篇: POJ3169 Layout (差分约束)
下一篇: UVa 1395 Slim Span (最小生成树)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值