并查集 hihocode分数调查

后端开发 Docker4.99.0 AppleSilicon 苹果芯片 Mac 安装包 本资源为 Docker Desktop 4.99.0 苹果芯片(Apple Silicon)专用安装包,原生适配 M 系列 Mac,可快速搭建本地容器开发环境,支持镜像拉取、容器编排、项目打包部署。适合后端开发、运维、全栈开发者,用于本地微服务、测试环境、项目容器化开发。 立即下载

题目是这样的:


题目2 : 分数调查

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。  

学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。  

小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低?

输入

第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。  

以下M行每行三个整数,X, Y和S。表示X号同学的分数比Y号同学的分数高S分。  

以下Q行每行两个整数,X和Y。表示小Hi想知道X号同学的分数比Y号同学的分数高几分。  

对于50%的数据,1 <= N, M, Q <= 1000  

对于100%的数据,1 <= N, M, Q<= 100000 1 <= X, Y <= N -1000 <= S <= 1000

数据保证没有矛盾。

输出

对于每个询问,如果不能判断出X比Y高几分输出-1。否则输出X比Y高的分数。

样例输入
10 5 3  
1 2 10  
2 3 10  
4 5 -10  
5 6 -10  
2 5 10  
1 10  
1 5  
3 5
样例输出
-1  
20  
0

题目分析:只有当a和b之间能联系起来的时候才能比较a和b的大小。假设a,b,c,d,e,f,g之间都能直接或者间接的联系起来。就从a,b,c,d,e,f,g之间随意找到一个节点。让其他数和这个节点比较。用数组记录下它和节点的差值。这样互相联通的数之间就能两两比较了。


很显然,这道题用并查集更方便些。即如果根节点相同,就计算差值。否则,就不能比较。

#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;


int fa[100005], val[100005];


int find(int x)//查找根节点
{
    if(fa[x] == x)
    {
        return x;
    }
    else
    {
        int pre = fa[x];
        fa[x] = find(fa[x]);
        val[x] = val[x] + val[pre];
        return fa[x];
    }
}


int main()
{
    for(int i=0;i<=100000;i++)
    {
        fa[i] = i;
        val[i] = 0;
    }


    int N, M, Q;
    scanf("%d %d %d", &N, &M, &Q);
    for(int i=0;i<M;i++)
    {
        int a, b, s;
        scanf("%d %d %d", &a, &b, &s);
        int fx =find(a);
        int fy =find(b);
     //   if(fx == fy) continue;
        fa[fy] = fx;
        val[fy] = val[a] - val[b] + s;
        //cout<<fy<<"xxx    "<<fx<<endl;
        /*for(int i=1;i<=N;i++)
        {
            printf("%d : %d %d \n",i,  find(i), val[i]);
        }*/
    }




    while(Q--)
    {
        int x, y;
        scanf("%d %d", &x, &y);
        int fx =find(x);
        int fy =find(y);


        if(fx == fy)
        {
            printf("%d\n", val[y]-val[x]);
        }
        else
        {
            printf("-1\n");
        }
    }
    return 0;
}


Cisco思科 电子科技大学计算机网络 SRWE 期末技能考试 (PTSA) 电子科技大学2024春_SRWE_计算机网络系统 SRWE 期末技能考试 (PTSA) 阅读详情

相关推荐

深入剖析STM32F103 I2C总线死锁问题及高效应对策略

本文深入剖析了STM32F103硬件I2C总线在轮询模式下发生死锁的根本原因,即硬件状态机的预取机制与软件响应速度不匹配。文章提供了高效的解决方案,包括在轮询模式下提前发送NACK/STOP信号、降低总线速度,以及治本的中断与DMA应用策略,帮助开发者根据项目需求选择最合适的方案,彻底解决这一经典硬件缺陷问题。

weixin_29184371的博客 206

hihoCoder-1515 : 分数调查(带权并查集)

hihoCoder-1515 : 分数调查(带权并查集) 一、题目描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 输入 第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行三个整数,X, Y和S。表示X号同学的分数比Y号同学的分数高S分。 以

Jarvis223的博客 235

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

带权并查集

带权并查集 分数调查 描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 输入 第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行三...

weixin_46657636的博客 184

LM358实战:手把手教你搭建电流检测电路(附电阻选型计算)

本文详细解析了使用LM358运算放大器搭建电流检测电路的全过程,包括基础原理、采样电阻选型、放大电路设计及PCB布局技巧。通过实战案例和精确计算,帮助工程师快速掌握低成本、高精度的电流检测方案,适用于电源管理、电机控制等多种应用场景。

weixin_30872157的博客 448

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 995

并查集,带权并查集--从入门到入坑 完整版

狗头,通过一道入门题来入门并查集。 找朋友 在社交的过程中,通过朋友,也能认识新的朋友。在某个朋友关系图中,假定 A 和 B 是朋友,B 和 C 是朋友,那么 A 和 C 也会成为朋友。即,我们规定朋友的朋友也是朋友。 现在,已知若干对朋友关系,询问某两个人是不是朋友。 请编写一个程序来解决这个问题吧。 输入格式 第一行:三个整数 n,m,p(n≤5000,m≤5000,p≤5000)分别表示有n 个人,m 个朋友关系,询问p 对朋友关系。 接下来 m 行:每行两个数Ai,Bi1≤Ai,Bi≤N,表示Ai​

double_app_le的博客 244

西门子PLC编程之⑦编程开始之点位配置及注释

紧接上篇,点位梳理后,进入PLC编程。1、新建工程,配置系统模块2、配置I点并做中文符合,直接上中文,smart支持中文点位编程,用起来很方便。3、配置Q点并做中文符合5、配置AIW模拟量输入点,配置AQW模拟量输出点并做中文符合6、配置手动启动辅助触点,并做中文符合7、 配置自动启动辅助触点,并做中文符合8、 配置传感器浮点型数据变量点位,并做中文符合9、配置系统运行参数设置区点位,做中午符合,做掉电保持.....................

学技术,人生不误——谁也是寂寞宇宙里的流星,只是你的坚持决定了你划过的痕迹。而且,铸造了普遍里的你的唯一。 4889

并查集 带权并查集

描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 输入 第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行三个...

correct 206

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

RT-DETR改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性

Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。

Limiiiing的博客 1544

hihoCoder #1515 : 分数调查(带权并查集)

题目链接:http://hihocoder.com/problemset/problem/1515 #1515 : 分数调查 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。   学校没有公布测验的成绩,所以小Hi只

far away 618

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(带权并查集)hihoCoder1515分数调查

hihoCoder1515分数调查 思路: 模板题。权值为子节点比父节点多的分数。 代码: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long const int N=1e5+10; const int mod=1e7+9; const int maxn=0x3f3f3f3f; con...

Z7784562的博客 266

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

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

分数调查(带权并查集)

原题:HihoCoder - 1515 题意: 有n学生,告诉你m条消息,每天消息为a比b高s分 q此询问,问两个学生的分数差,不能得出则-1 解析: 在并查集的基础上,我们用一个数组v来记录点于其现在的根结点的差,v[2]==10表示二比二的根高10 在findfa和unit函数进行的同时更新v就行 findfa时,同递归的方法,用其父结点的v推出其v unit时,连接两个点的...

QAQ 590

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

带权并查集(含种类并查集)【经典模板】 例题:①POJ 1182 食物链(经典)②HDU - 1829 A bug's life(简单) ③hihoCoder 1515 : 分数调查

带权并查集 带权并查集,即增加了一个value,然后在合并过程中就需要维护这个值。 种类并查集,就是元素分为不同种类,实际上可以转化为带权并查集来处理。当然也有种类并查集的自己的解法。 下面以【 POJ 1182 食物链(经典)】 【HDU - 1829 A bug’s life(简单)】两个题为例,分别用带权并查集和种类并查集的解法给出。 【hihoCoder 1515 : 分

Floraqiu的博客 3091

【UJN-寒假练练练】新年快乐-3--枚举_X - 分数调查

小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低?

这题AC再睡 448

带权并查集经典习题:POJ-2492 A Bug's Life; POJ-1182 食物链;hihoCoder1515 分数调查

带权并查集讲解:https://blog.youkuaiyun.com/Floraqiu/article/details/79226320 POJ - 2492 A Bug's Life POJ - 1182 食物链 hihoCoder1515 分数调查 拙见:带权并查集 就是为每个节点增加一个value,表示这个点与根节点的某种关系,然后可以通过两个节点和根节点的关系来判断这两个节点的关系,核心就是...

MengHao的博客 260

带权并查集(深度理解)

我们都知道一个点的权值,是这个节点到根节点之间的差值,我们根据差值,就可以知道很多东西,权值数组sum[maxn] 1.已知两个点的权值(假设都是与根节点的权值),那么这个两个点的差值为 sum[x]-sum[y]=(fen[x]-u)-(fen[y]-u)=fen[x]-fen[y] 就是参考点变换了一下,就可以间接找出这两个节点之间的差值。 2.在合并两个点时, 我们已经知道了,这个...

博客 498

【[Offer收割]编程练习赛15-B分数调查】

【链接】https://hihocoder.com/contest/offers15/problems 【题目描述】 题目2 : 分数调查 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的

herongwei 的 BLOG 943

hiho1515 - 数据结构 并查集

题目链接 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低 #include <cstdio> #include <cstring> #incl...

banfan0440的博客 207

hiho一下 第147周 小Hi的烦恼

hiho一下 第147周 小Hi的烦恼主要是参考了讨论区的方法。。。http://hihocoder.com/discuss/tag/hiho%E4%B8%80%E4%B8%8B%E7%AC%AC147%E5%91%A8题目要求: 描述小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好。小Hi在高中期间参加了市里的期末考试,一共五门:语文、数学、英语、物理、化学。成绩

u012661538的博客 374

Hihocoder 1515 : 分数调查【带权并查集】

描述 小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。 学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。 小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 输入 第一行包含三个整数N, M和Q。N表示学生总数,M表示小Hi知道消息的总数,Q表示小Hi想询问的数量。 以下M行每行...

独钓门前月 417

ACM 粗心永远AC不了系列——小Hi的烦恼|“五维数点”问题

问题来源:hiho一下第147周 小Hi的烦恼 题目1 : 小Hi的烦恼 时间限制:5000ms 单点时限:1000ms 内存限制:1024MB 描述 小Hi从小的一大兴趣爱好就是学习,但是他发现尽管他认真学习,依旧有学神考的比他好。 小Hi在高中期间参加了市里的期末考试,一共五门:语文、数学、英语、物理、化学。 成绩出来之后,小

The_sam的博客 683

#1515 : 分数调查(带权并查集)

题目链接 题意:   小Hi的学校总共有N名学生,编号1-N。学校刚刚进行了一场全校的古诗文水平测验。学校没有公布测验的成绩,所以小Hi只能得到一些小道消息,例如X号同学的分数比Y号同学的分数高S分。小Hi想知道利用这些消息,能不能判断出某两位同学之间的分数高低? 思路:   学生a比学生b的分数高,可视为 b 是 a的父亲,a的权值为 v , 同理,假...

ampg66396的博客 226
上一篇: [51nod 1136 欧拉函数]
下一篇: C 的|、||、&、&&、异或、~、!运算
DOLEAM
博客等级 码龄11年 9粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值