HHHOJ#143——并查集离线+树链剖分

高校技术转移办公室人员在开展技术推介时,如何高效生成科技成果展示材料?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载
这是一道嘿嘿嘿OJ的题目,内部资料,所以没有题面。
这道题是LCT的板子题,但是蒟蒻不会LCT,所以只能用它的弱化版树剖来做了。
我们先离线读入所有的操作,对于操作1,我们先连边,并打标记,如果find(x)==find(y),则在后面的操作就不许要管了,直接continue。对于操作2,我们就判断x和y是否在同一个并查集中,如果不在就打标记,后面操作时直接输-1。
这样离线之后就可以用树剖来维护了,对于操作1,我们只需要对线段树里的点进行单点修改即可。操作2就是查询树链u,v上所有的颜色。由于颜色只有60种,所以我们直接用一个60位的二进制数来存,在线段树里用或(|)运算即可。

Code:

#include<bits/stdc++.h>
#define MAXN 200005
#define ll long long
using namespace std;
ll read(){
    char c;ll x;while(c=getchar(),c<'0'||c>'9');x=c-'0';
    while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0';return x;
}
ll n,q,cnt,dfn,head[MAXN],nxt[MAXN],go[MAXN],vis[MAXN*3],val[MAXN],rt;
ll sum[MAXN*4],son[MAXN],siz[MAXN],dep[MAXN],fa[MAXN],rank[MAXN],tid[MAXN],top[MAXN];
struct node{
    ll type,x,y;
}Q[MAXN*3];
ll find(ll x){
    if(fa[x]!=x) fa[x]=find(fa[x]);
    return fa[x];
}
void unionn(ll x,ll y){
    x=find(x);y=find(y);
    fa[y]=x;
}
void addedge(ll x,ll y){
    go[cnt]=y;nxt[cnt]=head[x];head[x]=cnt;cnt++;
    go[cnt]=x;nxt[cnt]=head[y];head[y]=cnt;cnt++;
}
void dfsI(ll x,ll father){
    fa[x]=father;dep[x]=dep[father]+1;
    siz[x]=1;son[x]=-1;
    for(ll i=head[x];i!=-1;i=nxt[i]){
        ll to=go[i];
        if(to==fa[x]) continue;
        dfsI(to,x);siz[x]+=siz[to];
        if(son[x]==-1||siz[to]>siz[son[x]]) son[x]=to;
    }
}
void dfsII(ll x,ll t){
    top[x]=t;tid[x]=++dfn;rank[dfn]=val[x];
    if(son[x]==-1) return;
    dfsII(son[x],t);
    for(ll i=head[x];i!=-1;i=nxt[i]){
        ll to=go[i];
        if(to==fa[x]||to==son[x]) continue;
        dfsII(to,to);
    }
}
void up(ll node){sum[node]=sum[node<<1]|sum[node<<1|1];}
void build(ll node,ll l,ll r){
    if(l==r){
        sum[node]=1ll*1<<(rank[l]-1);return;
    }
    ll mid=(l+r)>>1;
    build(node<<1,l,mid);
    build(node<<1|1,mid+1,r);
    up(node);
}
void update(ll node,ll l,ll r,ll p,ll ad){
    if(l==r){
        sum[node]=1ll*1<<(ad-1);return;
    }
    ll mid=(l+r)>>1;
    if(p<=mid) update(node<<1,l,mid,p,ad);
    else update(node<<1|1,mid+1,r,p,ad);
    up(node);
}
ll query(ll node,ll l,ll r,ll L,ll R){
    if(L<=l&&r<=R){
        return sum[node];
    }
    ll mid=(l+r)>>1,res=0;
    if(L<=mid) res|=query(node<<1,l,mid,L,R);
    if(R>mid) res|=query(node<<1|1,mid+1,r,L,R);
    return res;
}
ll queryLINK(ll u,ll v){
    ll res=0,tot=0;
    while(top[u]!=top[v]){
        if(dep[top[u]]>dep[top[v]]) swap(u,v);
        res|=query(1,1,n,tid[top[v]],tid[v]);
        v=fa[top[v]];
    }
    if(dep[u]>dep[v]) swap(u,v);
    res|=query(1,1,n,tid[u],tid[v]);
    while(res){if(res&1) tot++;res/=2;}
    return tot;
}
int main()
{
    memset(head,-1,sizeof(head));
    n=read();q=read();
    for(ll i=1;i<=n;i++) val[i]=read();
    for(ll i=1;i<=n;i++) fa[i]=i;
    for(ll i=1;i<=q;i++){
        ll type=read(),x=read(),y=read();
        Q[i]=(node){type,x,y};
        if(type==1){
            if(find(x)==find(y)){vis[i]=1;continue;}
            unionn(x,y);addedge(x,y);
        }
        if(type==2){
            if(find(x)!=find(y)) vis[i]=1;
        }
    }
    dfsI(1,0);
    dfsII(1,1);
    build(1,1,n);
    for(ll i=1;i<=q;i++){
        if(Q[i].type==1){
            if(vis[i]) continue;
            ll mid=(val[Q[i].x]+val[Q[i].y])/2;
            val[Q[i].x]=mid;val[Q[i].y]=mid;
            update(1,1,n,tid[Q[i].x],mid);
            update(1,1,n,tid[Q[i].y],mid);
        }
        if(Q[i].type==2){
            if(vis[i]) puts("-1");
            else printf("%lld\n",queryLINK(Q[i].x,Q[i].y));
        }
    }
    return 0;
}
产业园区运营负责人如何实现创新资源的高效整合与精准配置?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

基于Spring Boot的宾馆客房管理系统(代码+数据库+LW)

摘 要 随着旅游业与商务出行的蓬勃发展,宾馆行业竞争日趋激烈,传统管理模式中信息更新滞后、流程依赖人工、服务响应缓慢等问题凸显,严重影响运营效率与客户满意度。为此,本文设计并实现基于 Spring Boot 的宾馆客房管理系统,助力宾馆行业数字化转型。 系统采用 B/S 架构与前后端分离模式,前端以 Vue.js 框架构建交互界面,后端依托 Spring Boot 框架开发接口逻辑,搭配 MySQL 数据库实现高效数据存储与查询。系统涵盖房间管理、订单管理、用户管理、财务管理、服务与支持及系统支撑六大核心模块,实现在线预订、房态可视化、快捷入住退房、消费统计、智能客服等功能,满足住客、员工与管理者的多元化需求。 通过信息化手段,系统优化了宾馆服务流程,缩短住客等候时间,减轻员工工作负担,为管理者提供数据决策支持。测试表明,系统运行稳定、操作便捷,有效提升了宾馆运营效率与客户体验,为中小型宾馆信息化建设提供了实用的技术解决方案。 关键词:Spring Boot;宾馆客房管理;B/S 架构;前后端分离;数字化转型

HHHOJ-可持久化的书橱

题目 暂无版权 题解 这道题是一道离线DFS。 对于 4 x 操作,我们可以认为第 x 次操作做完后直接跳到了当前这次操作,用一条从 x 指向当前的边。 这样一来,若下一次操作为 4 x 操作,那么肯定在第 x 次操作做完后就跳过去做掉了,所以不用管了。否则就继续下一个操作。 如果有多个操作从 x 开始怎么办?很明显,每个操作做完我们都回溯一下就好了。4 x 操作的回溯不用管,其它三个...

xu0_zy的博客 470

科技中介服务机构如何提升技术评估的智能化与专业化水平?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【HHHOJ】NOIP2018 模拟赛(二十四) 解题报告

点此进入比赛 得分: 100+60+100100+60+100100+60+100(挺好的,涨了一波RatingRatingRating) 排名: Rank&amp;nbsp;1Rank\ 1Rank&amp;nbsp;1 RatingRatingRating:+115+115+115 T1T1T1:【HHHOJ13】金(点此看题面) 原题: 【洛谷2152】[SDOI2009] SuperGCD LinkL...

CXR的博客 676

科技中介服务机构如何利用平台提升服务质量与运营效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

OxygenXMLEditor-v26.x + keygen

OxygenXMLEditor-v26.x + keygen

【HHHOJ】NOIP模拟赛 捌 解题报告

点此进入比赛 得分: 30+30+70=13030+30+70=13030+30+70=130(弱爆了) 排名: Rank22Rank22Rank22 :Rating:−31:Rating:-31:Rating:−31 T1T1T1:【HHHOJ260】「NOIP模拟赛 捌」Digits(点此看题面) 比赛时写数位DPDPDP写挂了,最后交了个裸暴力。(后来发现写挂是因为没考虑借位的情况) 好吧...

CXR的博客 709

华大HC32F460从零到200MHz:手把手教你配置时钟系统(附避坑指南)

本文详细解析了华大HC32F460 MCU的时钟系统配置,从启动过程、时钟树分析到实战配置200MHz系统时钟。文章手把手指导开发者如何正确配置外部晶振、MPLL锁相环及总线分频,并提供了硬件检查、代码解读及常见问题排查的避坑指南,帮助用户从零构建稳定可靠的高性能时钟环境。

net55的博客 289

【HHHOJ】ZJOI2019模拟赛(十三)03.10 解题报告

点此进入比赛 得分: \(97+0+10=107\) 排名: \(Rank\ 3\) \(Rating\):\(+47\) \(T1\):【HHHOJ187】Hashit(点此看题面) 容易想到可以用后缀自动机来做,结果比赛时被\(Hack\)了。(后缀自动机题解详见博客【BZOJ5084】hashit) 正解貌似是后缀数组,但实际上\(X\_o\_r\)神仙的后缀自动机也能过。 反正我的是过不了...

weixin_30455023的博客 215

从FPGA/ASIC工程师视角看DDR:手把手拆解Memory Controller、PHY与DRAM芯片的协作流程

本文从FPGA/ASIC工程师视角深入解析DDR内存子系统,详细拆解Memory Controller、PHY与DRAM芯片的协作流程。通过系统架构分解、接口标准解析和实战调试技巧,帮助工程师优化DDR性能并解决常见问题,涵盖地址映射、命令调度、时序校准等关键技术要点。

weixin_42548888的博客 453

Golang实现企业级AI智能体安全合规自动化检测系统

需求:自动化解析欧盟AI法案、中国网络安全法、美国NIST框架等多国法规,提取具体合规要求并映射到企业技术实现。技术挑战法规文本非结构化,语义复杂,存在大量法律术语与技术术语交叉多语言支持(中文、英文、欧盟24种官方语言)法规动态更新(平均每季度更新2-3次)架构创新性:提出了"规则引擎+AI模型+实时监控"的混合架构,兼顾了合规要求的明确性与智能体行为的动态性。性能突破:通过Golang协程、多级缓存、数据库优化等技术,实现了12,800 req/s的高吞吐量和38ms的低延迟。准确性提升。

shao.bing的专栏 718

HHHOJ #246 卡车 题解--zhengjun

题目传送门给定一个 nnn 个点的树,每个点有权值 viv_ivi​,每条边也有权值 wjw_jwj​,对于树上一条简单路径,它的权值就是路径上(包括两端点)min⁡{vi}×∑wj\min{\{v_i\}}\times\sum w_jmin{vi​}×∑wj​,求最大的路径权值。显然可以发现可以将每个点按照 aia_iai​ 从大到小排序,枚举当前的 min⁡{vi}\min\{v_i\}min{vi​},然后发现原来的树会分成若干个连通块,只需要维护出每个连通块的直径即可。合并连通块的时候,用左边直径

A_zjzj的博客 314

华为海思IC前端中后端(COT&XPU)岗位笔试机考题

华为海思COT和XPU部门IC前端,IC中端,IC后端岗位笔试真题分享

weixin_37584728的博客 3348

[Lucas + 高维前缀和] HHHOJ#75. 虚妄之诺

我太菜了…做过类似的题还不会做…. 这题和之前做过的 ZROI 2017提高2 World Of Our Own 很像。总体思路就是异或的贡献是一个组合数的式子,用卢卡斯判断组合数奇偶,就转化成了子集和的形式,经典的高维前缀和就好了。 具体来说,我们考虑每个点对根的贡献,只需关注它到根的路径上的点被加的贡献。 1 1 1 1 1 1 1 1 1 1 1 2 3 4

Lynstery's blog 816

Winform从入门到精通(1)——Label(史上最全)

本篇文章是对专栏《winform控件从入门到精通》的详细介绍

qq_34059233的博客 4万+

RK3588芯片:ALSA音频通路下HDMI与耳机自动切换的技术探索

摘要:本文详细探讨了基于RK3588芯片的HDMI与耳机自动切换方案。文章首先剖析了ALSA音频架构的核心组件与工作原理,接着介绍了RK3588芯片的硬件特性及音频处理优势。重点阐述了自动切换的实现原理,包括硬件检测机制、ALSA驱动处理逻辑和软件控制流程,并提供了详细的配置步骤。同时针对常见问题如切换异常、音频质量下降等给出了解决方案。该方案通过合理配置设备树和ALSA文件,实现了音频输出的智能切换,提升了用户体验,展现了RK3588在音频处理领域的强大性能。未来随着AI音频技术的发展,该方案在智能家居、

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 262

[二分图匹配] HHHOJ#51. Book

我太菜了……#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=10005,maxe=20005; int n,m,fir[maxn],nxt[maxe],son[maxe],tot; void add(int x,int y){ son[++tot]=y; nx

Lynstery's blog 827

图像紫边消除(depurple)

对图像紫边形成原因、消除方法进行了介绍。

沧海一升的博客 7559

[DP] HHHOJ #115. 我们爱数数

其实当时已经几乎想到了,但是没发现答案已经求好了…… 大概的思路是,这种至少 KK 的问题时,一般不能直接求出答案而要进行一些加加减减。就考虑 DPDP 求出一些东西。 注意到如果不放在快乐的位置的人,如果要选个位置放下的话必须要 2n2^n 记下状态。规模不能承受。 所以我们干脆让不快乐的随便填,即只考虑填快乐的,剩下的全排列。 这样只需要记前两个位置是否被占,就可以做到 O(n2)O(n

Lynstery's blog 714

0.嵌入式控制器EC实战 Embedded Controller开发概述

文章目录前言1.嵌入式控制器EC概述2.EC芯片框图(IT8502为例)3.General Purpose I/O Port (GPIO)4.SMBus(System Management Bus,系统管理总线)5.PWM、TACH6.KBC(KeyBoard Controller)7.PS/28.ADC(模数转换)总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 1.嵌入式控制器EC概述 嵌入式控制器EC是挂在CPU的L

qq_30135687的博客 1万+

OV9734 DATASHEET,完整规格书

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

【HHHOJ】ZJOI2019模拟赛(十五)03.17 解题报告

点此进入比赛 得分: \(42+10+14=66\) 排名: \(Rank\ 3\) \(Rating\):\(+53\) \(T1\):【HHHOJ200】稗田的梦中之梦(点此看题面) 暴力\(DFS\)+上界限制,水到\(42\)分\(23333\)。 只需在暴力\(DFS\)的过程中,加上一个限制每个点的经过次数不能超过\(k\)次,这样显然会错,但至少不会\(TLE\)。 没什么细节,直接...

weixin_30764883的博客 179

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[数论 拓展欧拉定理] HHHOJ #97【BalkanOI 2016】Power-towers

扩展欧拉定律的运用。 ab≡⎧⎩⎨⎪⎪ab%ϕ(p)           gcd(a,p)=1ab                  gcd(a,p)≠1,b<ϕ(p)ab%ϕ(p)+ϕ(p)   gcd(a,p)≠1,b≥ϕ(p)(modp) a^b\equiv \begin{cases} a^{b\%\phi(p)}~~~~~~~~~~~gcd(a,p)=1\\ a^b~~~~~~~~~~~

Lynstery's blog 542

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

「NOIP2017模拟赛08.02」A**B

题目链接:http://hhhoj.ngrok.cc/contest/3/problem/4    高精度乘法    小数点位数加一下就好了    注意前后的0以及输出规范    贴代码 type arr=array[0..300]of longint; var s:string; n,x,bo,i,j,t,len,bo1:longint; ans,a:arr

白云千载空悠悠 869

ARM调试寄存器架构与复位行为详解

在嵌入式系统开发中,调试寄存器是实现硬件调试功能的核心组件。ARM架构提供了断点控制寄存器(DBGBCR)和断点值寄存器(DBGBVR)等关键寄存器组,通过地址匹配、上下文ID匹配等机制实现精细调试控制。调试寄存器的复位行为分为热复位域、冷复位域和外部调试复位域,这种分域设计使得调试系统可以在不同层级的复位操作中保持必要的调试状态。理解调试寄存器的工作原理和复位行为,对于开发高效可靠的嵌入式系统至关重要,特别是在多核调试和长时间运行固件的场景中。本文深入解析ARM调试寄存器的架构设计、分类功能以及复位行为,

weixin_30603633的博客 677

[循环卷积 || 循环矩阵] HHHOJ #120. 随

首先推一下式子,变成求 1nm∑(ak1ak2..akm mod P)=1nm∑kk∑[ak1ak2..akm mod P==k]\frac{1}{n^m}\sum(a_{k_1}a_{k_2}..a_{k_m} \text{ mod } P)=\frac{1}{n^m}\sum_{k} k\sum[a_{k_1}a_{k_2}..a_{k_m} \text{ mod } P==k] 注意模 P

Lynstery's blog 1496

HHHOJ#225. 树的统计

树上莫队 题目大意:给你一棵树,每个节点有一个颜色,每次询问从uuu到vvv出现第kkk多的颜色。 数据范围:n,q≤1e5n,q≤1e5n,q\leq 1e5 这道题是LOJ6273的树上版。 对于每一种颜色,定义一个二元组c,xc,xc,x表示颜色ccc出现了xxx次,用vector存储,把它放到序列上并分块。记一个f[]f[]f[]表示这种情况是否出现,每次修改颜色的时候把a[c][...

forezxl的博客 342
上一篇: BZOJ2654——WQS二分+最小生成树
下一篇: BZOJ4518——二维斜率优化dp
stevensonson
博客等级 码龄9年 31粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值