news 2026/7/28 17:51:24

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)

Output

对于每组数据,输出不正确的关系个数。

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: (PS: the 5th and 10th requests are incorrect)

如果一个后面给出的关系与前面给出的关系矛盾,则后面的关系是错误的。

在输入一组关系后,首先判断这组信息中的A和B是否已经存在关系。

如果没有关系,则把前面的点变成后一点的祖先,并建立距离关系(带权并查集)

如果有关系,则判断前后关系是否矛盾。

注意find函数中查找某一点祖先时,需将某一点到祖先路径上的所有点到祖先的距离都要修改。

还有这个式子dis[dy]=dis[x]+d-dis[y],其中dy和dx分别为y和x的祖先,通过合并dx要变成dy的祖先(见下图关系)。

#include<cstdio> using namespace std; const int mod=300; int pre[50005],dis[50005]; int find1(int x) //递归回溯找祖先,并压缩路径,计算路径上所有点到祖先的距离 { if(pre[x]!=x) { int j=pre[x]; pre[x]=find1(j); dis[x]=(dis[x]+dis[j])%mod; //防止到祖先的距离超过一圈 } return pre[x]; } int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { int ans=0; for(int i=1; i<=n; i++) //初始化 { dis[i]=0; pre[i]=i; } for(int i=0; i<m; i++) { int x,y,d; scanf("%d%d%d",&x,&y,&d); int dx=find1(x),dy=find1(y); //找到祖先,计算路径上所有点到祖先的距离 if(dx!=dy) //(union)若不是并联,则把前面的点变成后一点的祖先 { pre[dy]=dx; dis[dy]=(dis[x]+d-dis[y]+mod)%mod; //防止出现负数加上300再取模 } else if(dis[y]!=(dis[x]+d)%mod) //防止到祖先的距离超过一圈 ans++; } printf("%d\n",ans); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 17:50:41

终极Linux文件搜索革命:FSearch如何让文件查找快如闪电

终极Linux文件搜索革命&#xff1a;FSearch如何让文件查找快如闪电 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 你知道吗&#xff1f;在Linux系统中查找一个文件竟…

作者头像 李华
网站建设 2026/7/28 17:49:32

终极指南:如何使用Photon光影包彻底改变你的Minecraft视觉体验

终极指南&#xff1a;如何使用Photon光影包彻底改变你的Minecraft视觉体验 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon 想让你的Minecraft世界焕然一新吗&#xff1f;Photon光影包…

作者头像 李华
网站建设 2026/7/28 17:46:04

我用Python实现了一个小说网站雏形

前言 十个python九个爬&#xff0c;在大家的印象中好像Python只能做爬虫。然而并非如此&#xff0c;Python 也可以做Web开发&#xff0c;接下来给大家展示一下如何做一个小说站点。 相关软件 软件版本功能地址Python3.7.1脚本语言https://www.python.org/Django2.1.3Web框架…

作者头像 李华
网站建设 2026/7/28 17:45:04

Navicat重置工具终极指南:3种简单方法解决试用到期问题

Navicat重置工具终极指南&#xff1a;3种简单方法解决试用到期问题 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为Nav…

作者头像 李华
网站建设 2026/7/28 17:44:03

如何3步轻松下载国家中小学智慧教育平台电子课本PDF

如何3步轻松下载国家中小学智慧教育平台电子课本PDF 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容。 项目地址: https://git…

作者头像 李华