正解:线段树分治+线性基

解题报告:

传送门$QwQ$

考虑如果只有操作3,就这题嘛$QwQ$

欧克然后现在考虑加上了操作一操作二

于是就线段树分治鸭

首先线段树叶子节点是询问嘛这个不用说$QwQ$.然后把每条边放到所有它存在的区间上.

然后处理询问的话就$dfs$遍历线段树,删边操作就可以直接按栈序撤销了

最后梳理下这题的大致思路趴$QwQ$.首先以询问为节点建一棵线段树,并把每条边放到所有它会出现的节点处,然后$dfs$整棵线段树计算答案.

具体说下$dfs$的过程趴$QwQ$.

首先显然是要维护一个连通性和两点之间的路径异或值.

考虑现在加入点$(x,y,z)$,表示一条连接$xy$边权为$z$的边

然后如果$xy$在一个并查集内,就多了一个长度为$dis(x,y)\ xor\ y$的环,就给加入线性基中.

否则就把两个并查集合成一个,同时给其中一个并查集中的$dis$全部$xor$上一个值就成

(我好像又没讲清楚,,,就我同时还对每个点维护了它到并查集的根节点的距离,这样求$dis(x,y)$就可以直接$dis_x\ xor\ dis_y$了$QwQ$

(这个值就,合一块儿之后另一个并查集内的点改变的到根节点的距离,也就是$dis_x\ xor\ dis_y\ xor\ z$

然后在撤回操作的时候,直接按栈序撤回就成,就不用可持久化并查集了.

最后还有一个点是,关于撤回操作中线性基怎么删环.

事实上线性基要删除一个元素是挺难的,所以这里的实现是每次复制一个线性基,因为内存占得不大所以是没有影响的(这个和之前寒假的时候考的$shallot$有点儿像(虽然,那道题,我到现在还没落实呜(我落实真的好辣鸡阿我哭了

所以$dfs$的大致流程就,先加边,然后$dfs$,然后撤回,$over$,细节在上面,虽然有点儿杂乱无章但还是比较详细了$w$

然后就做完了?$umm$好像条理不太清楚的亚子,,,算了不懂的直接康代码趴$QAQ$

随机推荐

  1. CentOs7.0安装scrapy (云服务器上)

    centos7 默认Python 2.7,支持twisted 首先准备环境 yum install gcc libffi-devel openssl-devel libxml2 libxslt-dev ...

  2. python 检测目录

    #!/usr/bin/env python# -*- coding:utf-8 -*-import osimport win32fileimport win32con ACTIONS = { 1 : ...

  3. Python学习(四)cPickle的用法

    python中有两个类似的:pickle与cPickle:两者的关系:“cPickle – A faster pickle” pickle模块中的两个主要函数是dump()和load().dump() ...

  4. LInux下编译发生的libc相关错误

    在某主机上编译程序,发生有找不到libc的问题,自己写了个简单的hello world程序,编译也失败,报错如下: # gcc -o 1 1.c /usr/bin/ld: skipping incom ...

  5. ASCII代码表

    >>ASCII代码表<<

  6. vue实现购物车逻辑

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. E - Count on a tree 树上第K小

    主席树的入门题目,这道题的题意其实就是说,给你一棵树,询问在两个节点之间的路径上的区间第K小 我们如何把树上问题转换为区间问题呢? 其实DFS就可以,我们按照DFS的顺序,对线段树进行建树,那么这个树 ...

  8. iptables禁止ssh端口

    只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh #iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j AC ...

  9. 横向tab计算滚动位置

    React横向滚动计算 class Footer extends React.Component { handleClick(e) { const offset = 150; // 指定偏移量 thi ...

  10. CSS中常用的简写模式

    一.font属性简写 font-style:字体样式 normal 默认值.浏览器显示一个标准的字体样式. italic 浏览器会显示一个斜体的字体样式. oblique 浏览器会显示一个倾斜的字体样 ...