随笔分类 - 线段树
就是各种并不对劲的线段树
摘要:#####题目大意 有一棵$n$个点有点权$w$(可能有重复)的二叉树。$m$次操作,操作种类如下: 1.给出点$x$,修改$x$的权值; 2.给出点$x$,交换它和它的子树内所有点的左右儿子; 3.给出点$x$,问从根出发是否可以用“当前点点权小于$w_x$就往右走,大于$w_x$就往左走,等于$
阅读全文
摘要:#####题目大意 有人用错误的树状数组维护长度为$n$的01串$a_1,...,a_n$的区间异或和。 错误的树状数组: void add(int x){for(;x;x-=lowbit(x))tr[x]^=1;return;} int ask(int x){int k=0;for(;x<=n;x
阅读全文
摘要:#####题目大意 有$n$个点的树,给出$m$条关键路径。 问有多少对点满足连接它们的简单路径是至少1条关键路径的一部分。 \(n,m\leq 10^5\) #####题解 可以对于每个点,求出和它在同一条路径上的点有多少个。 也就是所有过它的关键路径的端点的虚树除它以外有多少个点。 虚树中的边数
阅读全文
摘要:题目大意 有$n$个数$a_1,...,a_n$,$m$次操作。 操作有两种: 1.给出$l,r$,将$a_l,...,a_r$升序排序; 2.给出$l,r$,将$a_l,...,a_r$降序排序。 所有操作结束后,给出$q$,问$a_q$。 $n,m\leq 10^5$。 题解 给一个01序列排序
阅读全文
摘要:题目大意 有一棵有$n$($n\leq10^5$)个点的树,有点权$d_i$、边权$c_i$,有$m$($m\leq10^5$)次操作。 每次操作给定$x,y(y\in[ 1000,1000])$,将点$x$的点权+y,要找到一个点,使所有点的 点权乘到这个点的距离 之和最小,输出最小的和。 题解
阅读全文
摘要:题目大意 有$n$个位置,一开始每个位置上都放着一个东西。每个位置上最多放一个东西。 有$m$个操作,分为以下三类: 1.给定$l,r$,将位置$l$到位置$r$的所有东西都拿走并扔掉。 2.给定$l_0,r_0,l_1,r_1$,将位置$l_0$到位置$r_0$的所有东西都拿出来,用来填位置$l_
阅读全文
摘要:CF1236D Alice&Doll 题目描述 有一个机器人在一个$n\times m$的有$k$个障碍网格上移动,上北下南左西右东。 它一开始在第一行第一列,面朝东边。它在每个格子上可以右转一次或不右转,然后会向面向的方向走一步。 问能不能将所有不是障碍的格子都走恰好一遍。$n,m,k\leq10
阅读全文
摘要:CF1239B The World Is Just a Programming Task 题目描述 定义一个括号序列s是优秀的,当且仅当它是以下几种情况的一种: 1.|s|=0 2.s=‘(’+t+‘)’,其中t是优秀的 3.s=t1+t2,其中t1、t2都是优秀的 一个括号序列的价值为将它看成一个
阅读全文
摘要:题意 有一棵$n$($n\leq 10^5$)个点的树,$m$($m\leq 2\times 10^5$)个操作。操作有三种:1.给出$u,v,k$,表示加入一条从$u$到$v$权值为$k$的路径;2.给出$k$,表示删除$k$时刻加入的路径;3.给出$x$,表示询问不经过点$x$的路径的权值最大值
阅读全文
摘要:题目大意 给出$n,k,d_1,...,d_n$($n\leq 5\times 10^5,1 include include include include include include include include include include include include define
阅读全文
摘要:题目大意 给出一个字符串$S$,长度为$n$($n\leq 10^5$),$S[l:r]$表示$S_l,S_{l+1}...,S_r$这个子串。有$m$($m\leq 3\times 10^5$)次询问,每次询问给出$l,r$,问有多少对$(i,j)$($1\leq irl$时,第一刀切在$[r_i
阅读全文