#带权并查集#HDU 3038 How Many Answers Are Wrong
题目
有未知的\(n\)个数,有\(m\)组询问,形如区间和等于给定值,
问有多少条错误的询问,一旦错误忽略此条询问
\(n\leq 2*10^5,m\leq 4*10^4\)
分析
用带权并查集,记录每个点到根节点的和,即是在合并时
\(s[y']=s[x]+w-s[y]\),表示\(y'\)到\(x'\)的距离,
通过\(x'<x,y'<y\)推出,如果两个点已经合并那么判断\(s[y]-s[x]=w\)
代码
#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
const int N=200011;
int n,f[N],ans,s[N];
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline signed getf(int u){
if (f[u]==u) return u;
rr int F=getf(f[u]);
s[u]+=s[f[u]];
return f[u]=F;
}
signed main(){
for (rr int i=0;i<N;++i) f[i]=i;
while (scanf("%d",&n)==1){
for (rr int T=iut();T;--T){
rr int x=iut()-1,y=iut(),w=iut();
rr int fa=getf(x),fb=getf(y);
if (fa!=fb) f[fb]=fa,s[fb]=s[x]+w-s[y];
else if (w!=s[y]-s[x]) ++ans;
}
printf("%d\n",ans);
for (rr int i=0;i<=n;++i) f[i]=i,s[i]=0; ans=0;
}
return 0;
}
#带权并查集#HDU 3038 How Many Answers Are Wrong的更多相关文章
- 带权并查集 HDU - 3047
题意: 一圈座位有n个,给出m组序号之间的关系,比如,1 2 150 代表2号坐在1号位置序号+150,看m组数据有多少组冲突的. 思路: 带权并查集模板. #include<stdio.h&g ...
- HDU 3038 - How Many Answers Are Wrong - [经典带权并查集]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU - 3038 How Many Answers Are Wrong (带权并查集)
题意:n个数,m次询问,每次问区间a到b之间的和为s,问有几次冲突 思路:带权并查集的应用.[a, b]和为s,所以a-1与b就能够确定一次关系.通过计算与根的距离能够推断出询问的正确性 #inclu ...
- hdu 3038 How Many Answers Are Wrong【带权并查集】
带权并查集,设f[x]为x的父亲,s[x]为sum[x]-sum[fx],路径压缩的时候记得改s #include<iostream> #include<cstdio> usi ...
- How Many Answers Are Wrong (HDU - 3038)(带权并查集)
题目链接 并查集是用来对集合合并查询的一种数据结构,或者判断是不是一个集合,本题是给你一系列区间和,判断给出的区间中有几个是不合法的. 思考: 1.如何建立区间之间的联系 2.如何发现悖论 首先是如何 ...
- hdu 5441 Travel 离线带权并查集
Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...
- HDU 3047 Zjnu Stadium(带权并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3047 题意: 给出n个座位,有m次询问,每次a,b,d表示b要在a右边d个位置处,问有几个询问是错误的. 思路: ...
- Valentine's Day Round hdu 5176 The Experience of Love [好题 带权并查集 unsigned long long]
传送门 The Experience of Love Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 【带权并查集】HDU 3047 Zjnu Stadium
http://acm.hdu.edu.cn/showproblem.php?pid=3047 [题意] http://blog.csdn.net/hj1107402232/article/detail ...
- HDU 3047 带权并查集 入门题
Zjnu Stadium 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3047 Problem Description In 12th Zhejian ...
随机推荐
- Django关于StreamingHttpResponse与FileResponse响应文件或视频的下载请求
StreamingHttpResponse from django.http import StreamingHttpResponse StreamingHttpResponse(streaming_ ...
- mac环境下安装python3的requests包
大家知道,mac环境默认安装的都是python2,自己装好python3之后,怎么使用pip来安装到python3下的包呢? 解决方法:pip3 install requests
- Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射
前言: 在本篇 Taurus.MVC WebMVC 入门开发教程的第六篇文章中, 我们将讨论如何配置路由并映射到控制器和操作方法. 路由是决定应用程序如何响应客户端请求的重要组成部分,因此在 Web ...
- powershell配置自动补全
powershell配置自动补全 一.需求: 看到老师上课用mac命令行有自动补全功能,发现真的爽.但是自己的windows powershell不能使用自动补全功能.有了需求,就想找到能完成目前的任 ...
- Nginx-web系列
nginx 系列 目录 nginx 系列 一 简述 1.1 为什么要使用? 1.2 主要用于哪里? 二. Nginx 搭建环境 2.1 版本选择 2.2 环境准备 2.2 yum 直装 2.3 ngi ...
- 网关接口映射项目 前端 nestjs 项目名称 tf-gateway-http-proxy 改Nginx了
需求 前端 需要连接后台地址,每次换别人联调都要修改,好几个项目的时候,就要改好几个 关键每次git提交 还会显示文件修改了 强迫症患者 表示 忍不了 群里有人给了个脚本 有时间可以替换nginx h ...
- 基于AmbiqMicro-AMA3B2KK-KBR的可穿戴智能手环解决方案之心率测量源码解析
一 前记 梳理该可穿戴产品的手环,产品,是一种成长.也是一个总结. 二 源码解析 1 初始化:这里主要初始化心率的检测间隔时间和心率值的位数. /* initialize heart rate pro ...
- [C++]使用auto遍历判断是否是最后一个元素
一.背景 略 二.代码 for(auto& it:vec){ if(&it==&vec.back()){ cout<<"is the last eleme ...
- 介绍几款WPF应用的UI库
在WPF中对于前端页面的书写,我们有现成的UI类库,不需要我们自己再去写 我这里介绍几款 1.MahApps 官网 https://mahapps.com/ 使用,在App.xaml中添加 <A ...
- 记录--面试官:“你知道什么情况下 HTTPS 不安全么”
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 面试官:"HTTPS的加密过程你知道么?" 我:"那肯定知道啊." 面试官:"那你知道什 ...