HDU 3047 Zjnu Stadium(带权并查集,路径压缩)

路径压缩&带权并查集 并查集的一些整理。 阅读详情

Zjnu Stadium

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1675    Accepted Submission(s): 630


Problem Description
In 12th Zhejiang College Students Games 2007, there was a new stadium built in Zhejiang Normal University. It was a modern stadium which could hold thousands of people. The audience Seats made a circle. The total number of columns were 300 numbered 1--300, counted clockwise, we assume the number of rows were infinite.
These days, Busoniya want to hold a large-scale theatrical performance in this stadium. There will be N people go there numbered 1--N. Busoniya has Reserved several seats. To make it funny, he makes M requests for these seats: A B X, which means people numbered B must seat clockwise X distance from people numbered A. For example: A is in column 4th and X is 2, then B must in column 6th (6=4+2).
Now your task is to judge weather the request is correct or not. The rule of your judgement is easy: when a new request has conflicts against the foregoing ones then we define it as incorrect, otherwise it is correct. Please find out all the incorrect requests and count them as R.
 

Input
There are many test cases:
For every case: 
The first line has two integer N(1<=N<=50,000), M(0<=M<=100,000),separated by a space.
Then M lines follow, each line has 3 integer A(1<=A<=N), B(1<=B<=N), X(0<=X<300) (A!=B), separated by a space.

 

Output
For every case: 
Output R, represents the number of incorrect request.
 

Sample Input
  
10 10 1 2 150 3 4 200 1 5 270 2 6 200 6 5 80 4 7 150 8 9 100 4 8 50 1 7 100 9 2 100
 

Sample Output
  
2
Hint
Hint: (PS: the 5th and 10th requests are incorrect)
题目大意:题目鬼扯了很长, 大致意思可以理解为有N个点,每个点的初始位置为0,每行给3个数,x,y,z,y在x的右边距离为z处,相对距离,最后问有几个矛盾的陈述,只用到一个简单的路径压缩,还有很多并查集要用到这个
题目链接:点击打开链接
代码注释:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define N 50005
int f[N],pos[N];
int n,ans;
int find(int x)
{
    if(x==f[x])
        return f[x];
    int tem=f[x];
    f[x]=find(tem);
    pos[x]+=pos[tem];
    return f[x];
}
void init()
{
    for(int i=1; i<=n; i++)
    {
        f[i]=i;
        pos[i]=0;
    }
    ans=0;
}
void make(int x,int y,int dis)
{
    int a=find(x);
    int b=find(y);
    if(a==b)
    {
        if(pos[y]-pos[x]!=dis)
            ans++;
    }
    else
    {
        f[b]=a;
        pos[b]=pos[x]+dis-pos[y];
    }
}
int main()
{
    int m;
    while(cin>>n>>m)
    {
        init();
        while(m--)
        {
            int x,y,s;
            scanf("%d%d%d",&x,&y,&s);
            make(x,y,s);
        }
        cout<<ans<<endl;
    }
}


别再手搓SVG了!用Vue3+SVG.js快速搭建电力系统拓扑图(附完整代码) 本文介绍了如何利用Vue3和SVG.js实现电力系统拓扑图的低代码开发,通过组件化和响应式数据绑定,大幅提升开发效率。文章详细解析了SVG.js的核心功能,包括图形创建链式API、动态属性绑定和高级图形操作,并提供了断路器组件的完整实现代码。此外,还分享了性能优化策略和调试技巧,帮助开发者应对大规模拓扑图的挑战。 阅读详情

相关推荐

信号完整性仿真SI之Cadence Sigrity SPEED2000_眼图仿真(四)

今天给大家分享一个仿真的操作流程,是关于Cadence Sigrity SPEED2000的时域波形仿真和眼图仿真。我们会经常看见硬件工程师调试示波器上的一些信号的波形变化,其实这些也可以通过仿真电路的搭建来做出投板前的仿真,来优化走线,以减少版本的迭代次数。如果要和实际的信号保持一致,就要求仿真设置的参数和实际的参数保持一致,这也是仿真的重点和难点。下面先让我们了解一下Cadence Sigrity SPEED2000时域仿真的操作流程: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的

刘小同学的博客 1万+

带权并查集 路径压缩

并查集 并查集是一种树形结构,又叫“不相交集合”,保持了一组不相交的动态集合,每个集合通过一个代表来识别,代表即集合中的某个成员,通常选择根做这个代表。 其实并查集很常用,比如果刚进入大学还没有分班,这个时候你并不知道你的同学,此时可以看做每个人都是独立的。而分班后,则你与同班的同学有了关系,同班同学的关系。在并查集中,若同学a与同学b是同班同学,则他们都会有一个共同点——有着相同的root(根),这个根也是同班的某一个同学,只是借助它来区分a与b的关系。比如说a与root同学c是同班同学,b与root同学

Peterwatwec的博客 454

【福建dem】原始高程数据tif格式

DEM(Digital Elevation Model,数字高程模型)是一种地理信息系统中的关键数据集,它提供了地表地形的三维信息,通常用于分析地貌特征、模拟水文过程、规划建设、灾害预警等多个领域。这种数据对于地理分析非常有价值,例如,它可以用于计算坡度、坡向、地形粗糙度等地形特征,或者进行洪水模拟、地质灾害评估、太阳能辐射分析等。“福建dem原始高程数据tif格式”是研究和理解福建省地形地貌的重要资源,结合GIS工具,可以揭示丰富的地理信息,为科研、工程和决策提供有力支持。

鸿业远图科技 944

【算法重修】并查集(带权+路径压缩)

算法思想 并查集(Union-Find)本质上是解决动态连通性(Dynamic-Connectivity)问题 一般包括以下操作: 合并(Union):将两个节点连通 查询(Find):询问两个节点间是否存在通路 数据结构 采用树形结构,但以下部分用数组实现 并查集类(UnionFind)类设计 数组存储id[i]表示父节点,id[i]若为i本身则为根节点 权值存储sz[i]表示树的规模,初...

sg2021的博客 412

在UI界面中播放视频_unity基础开发教程

之前我写过一篇在场景中播放视频的文章,但是在开发中有时候也会在UI的界面中播放视频,这期我们做一下在UI的界面中播放视频。操作步骤比较简单,到这里就完成了,如果有问题的话可以在评论区留言,下期见,拜拜!

为者常成,行者常至! 2011

告别Keil手动分区!用CubeMX+VS Code一键生成带Bootloader的STM32 OTA工程

本文详细介绍了如何利用STM32CubeMX和VS Code实现STM32 OTA工程的自动化构建,告别传统Keil手动分区的繁琐流程。通过图形化配置Flash分区、自动生成链接脚本以及实现Bootloader跳转逻辑,开发者可以高效完成远程升级功能开发,显著提升嵌入式开发效率。

weixin_33720956的博客 389

算法 1.5节:带路径压缩的加权并查集

import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut;public class UF_1 { private int[] id; private int[]sz; private int count; public UF_1(int N) { cou

firefly 1204

顺序功能图基本结构

顺序功能图(Sequential Function Chart,SFC)是一种用于描述工业控制系统中顺序控制流程的图形化编程语言,广泛应用于PLC(可编程逻辑控制器)编程。其核心思想是将复杂的控制流程分解为多个有序的步骤,通过逻辑条件实现步骤间的切换。顺序功能图通过图形化的方式简化了复杂控制逻辑的设计,尤其适用于需要严格顺序控制的工业自动化场景。[初始步] → 转换条件1 → [步1] → 转换条件2 → [步2] → ...[步X] → → [步B] → 转换条件B → → [合并步]

ayingqin1的博客 1226

并查集(偏移量+路径压缩)

并查集的概念: 并查集是由一个数组、两个函数(查找一个数的根、合并路线)组成,常用来解决一些不相交集合的合并与查找问题。 并查集中有2个重要的函数:一个用来寻找祖先,一个用来合并 祖先:节点指向自身 int find(int x) //寻找x的祖先,这里为了节约时间使用了路径压缩 { return x == p[x] ? x : p[x] = find(p[x]); } 路径压缩: 下图r...

柠檬的博客~~~ 1213

SDIO协议

SDIO协议1 概述  SDIO,全称:Secure Digital Input and Output ,即安全数字输入输出接口。2 特点①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。②与较早的多媒体卡系统规格版本全兼容(向前兼容)。③与SD存储卡规格版本2.0全兼容。④与SD I/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4

Let the development board fly! 3万+

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1335

HDU 3047 Zjnu Stadium(带权并查集)

题目链接:点击打开链接 思路:注意, 行数是无限的, 因此, 两个人可以同时都相距另一个人x远(相距x列, 不在同一行),也就是说, 出现矛盾的唯一地方就是在于, 现在说的两个人相距的距离和之前说的矛盾。   那么怎么判断矛盾呢, 由于每个人之间有间接关联性, 因此, 我们需要处理一个集合的距离问题 , 所以用带权并查集就可以很好的处理。 细节参见代码: #include #include

AC_Arthur的专栏 2931

遇到问题--OpenClaw--API rate limit reached. Please try again later429 您的账户已达到速率限制,请您控制请求频率

OpenClaw调用glm-4.7-flash模型时触发智谱AI平台429速率限制错误。分析发现当前重试策略采用固定间隔(7-11秒)导致连续失败,且未记录关键响应头信息。解决方案分三步:1)开启响应头日志获取配额详情;2)将重试策略改为带抖动的指数退避(初始1秒,最大60秒);3)在网关层实现令牌桶限流主动控制请求频率。需特别注意令牌配额(TPM)可能比请求次数(RPM)更早触达限制。

直到世界的尽头 2623

hdu3047 Zjnu Stadium(带权并查集)

题目 1-300列,无限行 N个人,每人坐在一列 M个叙述,表示A所在的列在B所在的列的前x列 问有多少种说法是假的 即若A在B的前x1列,A又在B的前x2列,则假 思路来源 https://blog.youkuaiyun.com/shuangde800/article/details/7983965 题解 学了并查集这么久竟然没入带权并查集 可以说是很菜了 有个等价的食物链的题 可以用...

小衣同学的博客 404

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU3047 Zjnu Stadium

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Problem Description In 12th Zhejiang College Studen...

dgoh41514的博客 147

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HDU 3047 Zjnu Stadium [并查集]

Description有一个体育馆,每行300个坐位 来了N个人,提出M组要求 要求格式为 A B X 假设A的坐位是i, 则B的坐位是 i + X 如果来了一组要求和之前矛盾,忽略这组要求 问最终由多少组矛盾的要求Algorithm带权并查集 用权V[i]表示X[id[i]] - X[i] X[i] 为 第i个人做的位置查找(find)时,启用路径压缩,则 v[p] = v[p]

more time 343

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

B - Zjnu Stadium(HDU - 3047)带权并查集

这道题是指一个圆形操场有300列,有以下n个人要坐在操场上,这n个人的坐法有m种限制。 以下m行每行有3个数 x,y,z, 是指从x到y中间要隔z列座位。 没有限制坐哪,但同一列只能坐一个人。 输出最后有几种限制是错的。(如果当前的限制条件与前面的限制条件相违背,就是错的) 这道题用并查集写, 当有两个人的座位发出来的时候,将它们和并到一个集合里,如果发现已经合并到一个集合里,说明他们...

shiuxin的博客 172

hdu 3047 Zjnu Stadium

有一个有300个座位的圆,现在给出n个两个人间的座位信息,问有几个信息是错误的。 当一个信息和前面的信息矛盾被认为是错误的。 一个模300系的带权并查集。势能高的向势能低的树合并,合并时压缩路径并将相对于根节点的势能更新。 #include <bits/stdc++.h> #define pb push_back #define mp ma...

ad4627的博客 118

Zjnu Stadium HDU - 3047 带权并查集

In 12th Zhejiang College Students Games 2007, there was a new stadium built in Zhejiang Normal University. It was a modern stadium which could hold thousands of people. The audience Seats made a circl

mwhybmj的博客 535

hdu 3038(How Many Answers Are Wrong)+3047(Zjnu Stadium)(种类并查集)

hdu 3038:http://acm.hdu.edu.cn/showproblem.php?pid=3038 hdu 3047:http://acm.hdu.edu.cn/showproblem.php?pid=3047 如果之前没见过种类并查集的话,估计第一反应都是线段树吧... 这两道题都是在压缩路径的时候,利用递归,求得节点到根的距离。 用sum[i]表示节点i到根节点

Where amazing happens 423

HDU-3047-Zjnu Stadium【 带权并查集 】题解

目录1.题目2.代码 1.题目 In 12th Zhejiang College Students Games 2007, there was a new stadium built in Zhejiang Normal University. It was a modern stadium which could hold thousands of people. The audience Seats made a circle. The total number of columns were 300

林深不见鹿 的博客 243

HDU - 3047 Zjnu Stadium (带权并查集)

一个体育场列标号为1-300,行无限(一列可以有多人重复坐)体育场是一个环。 给出n个人和m个关系,关系为A B x表示A位置若为i,则B位置在A顺时针加x的位置。如果一个关系在前面给出的关系中矛盾,则称其不成立。求不正确的关系个数 Input 输入多组数据,第一行n,m(1<=N<=50,000,0<=M<=100,000)表示人数和关系数 接下来m行表示关系 A(1<=A<=N), B(1<=B<=N), X(0<=X<300) (A!=B)

weixin_44376865的博客 193

hdu3047 Zjnu Stadium 并查集

Zjnu Stadium In 12th Zhejiang College Students Games 2007, there was a new stadium built in Zhejiang Normal University. It was a modern stadium which could hold thousands of people. The audience Seat...

cloudy_happy的博客 195

【ICPC-378】hdu 3047 Zjnu Stadium

点击打开链接hdu 3047 思路: 带权并查集 分析: 1 题目要求的是错误的条件的个数,这一题还是比较简单的带权并查集 2 我们用rank[x]表示的x到跟节点的距离,那么对于x和y来说,如果x和y在不同集合那么把x和y合并,否则直接判断rank[x] == (rank[y]+val)%300 代码: #include<cstdio> #include<cstr...

藏经阁 | 玄苦 1159

hdu 3047–Zjnu Stadium(带权并查集)

题目大意: 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突。 分析: 首先我们假设所有节点均在不同行的0位置,即rank[]初始化需为零,同时p[]需要初始化为-1,表示各个节点之间不存在联系,相互独立; 接下来,我们获取信息:A B X;那么我们需要检查...

dengtiaolu0407的博客 146

hdu(3047)——Zjnu Stadium(高级并查集)

终于做到有我们学校出的多校题了,感动。。。 但是这道并查集并不是那么简单额,想了我好久,现在还是提留有一点点感性的认识,也不知道自己想的对不对。 推荐博客:http://www.cnblogs.com/wally/archive/2013/06/10/3130527.html (但是它好像有一点写的太简略了,应该是当两个人座位间的差值不等于要求的差值的话,那么才是不符合要求的) 题意: 有

ACM_hades的梦想之路 951
上一篇: HDU 3635 Dragon Balls(带权并查集)
下一篇: ZOJ 1569 Partial Sums
tauriel
博客等级 码龄12年 11粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值