随笔分类 -  数据结构——线段树

摘要:题面 "传送门" 题解 感谢$@M\_sea$的代码我总算看懂题解了…… 这个操作的本质就是每次把$x$的$k$进制最低位乘$2$并进位,根据基本同余芝士如果$k$是奇数那么最低位永远不会变为$0$,也就是说最低位所在的位置是不变的,并且$1$到$n$会被分成若干条链,链上我们可以用线段树之类的搞一 阅读全文
posted @ 2019-05-19 22:28 bztMinamoto 阅读(633) 评论(1) 推荐(0)
摘要:"传送门" 太菜了连$D$都做不出来没有小裙子$QAQ$ $A$ 暴力把所有的数对都算出来,然后$sort$一下就行了 $B$ 我们从左到右一列一列考虑,如果该列上下都没有,放一个黑的就够了(具体放在上下无所谓,反正都是一个),如果这一列有,那么和上一个有黑的列进行比较,如果它们上同有或下同有就不用 阅读全文
posted @ 2019-05-17 22:30 bztMinamoto 阅读(283) 评论(0) 推荐(0)
摘要:"传送门" $MAXEP$ 二分,不过二分的时候要注意把$mid$设成$\left\lfloor{9l+r\over 10}\right\rfloor$,这样往右的次数不会超过$6$次 $BICONT$ 不难看出要计算的就是方案数。对于一条边$(u,v)$,如果两个点不在同一个~~不知道是点双还是边 阅读全文
posted @ 2019-04-22 18:27 bztMinamoto 阅读(202) 评论(0) 推荐(1)
摘要:题面 "传送门" 题解 先考虑$k=1$的情况,我们可以离线处理,从小到大对于每一个$i$,令$1$到$i$的路径上每个节点权值增加$1$,然后对于所有$x=i$的询问查一下$y$到根节点的路径和就是了 那么$k\neq 1$的情况该怎么办呢?我们来考虑一下令$1$到$i$的路径上每个节点权值加$1 阅读全文
posted @ 2019-04-21 15:36 bztMinamoto 阅读(280) 评论(0) 推荐(0)
摘要:$JUMP$ 很容易写出转移柿子 $$f_i=\min_{p_j define R register define inline __inline__ __attribute__((always_inline)) define fp(i,a,b) for(R int i=(a),I=(b)+1;iI 阅读全文
posted @ 2019-04-18 22:31 bztMinamoto 阅读(246) 评论(0) 推荐(0)
摘要:题面 "传送门" 题解 我的做法似乎非常复杂啊…… 首先最长上升子序列长度就等于把它反过来再接到前面求一遍,比方说把$2134$变成$43122134$,实际上变化之后的求一个最长上升子序列和方案数就是答案了 最长上升子序列随便求求,主要是这个方案数很麻烦啊……我的做法是对每一个长度开一个动态开点线 阅读全文
posted @ 2019-04-15 18:14 bztMinamoto 阅读(349) 评论(0) 推荐(0)
摘要:"传送门" $Maximum\ Remaining$ 对于两个数$a,b$,如果$a=b$没贡献,所以不妨假设$a define R register define fp(i,a,b) for(R int i=(a),I=(b)+1;iI; i) define go(u) for(int i=hea 阅读全文
posted @ 2019-04-15 17:45 bztMinamoto 阅读(283) 评论(2) 推荐(0)
摘要:题面 "传送门" 题解 考场上就这么一道会做的其它连暴力都没打……活该爆炸…… 首先我们得看出问题的本质:有$m$个操作,总共$2^m$种情况分别对应每个操作是否执行,求这$2^m$棵线段树上$tag$为$1$的节点个数 那么很明显得转化为每个节点在多少种情况里$tag$为$1$ 对于一个操作$[q 阅读全文
posted @ 2019-04-01 20:21 bztMinamoto 阅读(565) 评论(0) 推荐(0)
摘要:题面 "传送门" 题解 为什么大佬们全都是乱搞的……莫非这就是传说中的暴力能进队,乱搞能AC…… 似乎有位大佬能有纯暴力+玄学优化$AC$(不算上$uoj$的$Hack$数据的话……这要是放到考场上就是切题的啊……) 整体思路呢,就是我们开一个线段树,线段树上的每一个区间维护“以这个区间右端点为结尾 阅读全文
posted @ 2019-03-20 09:14 bztMinamoto 阅读(574) 评论(0) 推荐(0)
摘要:题面 "传送门" 题解 字符串就硬是要和数据结构结合在一起么……$loj$上$rk1$好像码了$10k$的样子…… 我们设$L=r l+1$ 首先可以发现对于$T$串一定是从左到右,能取就取是最优的 我们先用后缀自动机$+$线段树合并求出自动机上每一个节点的$endpos$集合。如果$L$较大的时候 阅读全文
posted @ 2019-03-13 13:04 bztMinamoto 阅读(274) 评论(0) 推荐(0)
摘要:题面 "传送门(loj)" "传送门(洛谷)" 题解 我果然是人傻常数大的典型啊…… "题解在这儿" //minamoto include define R register define ls (pI; i) define go(u) for(int i=head[u],v=e[i].v;i;i= 阅读全文
posted @ 2019-03-06 16:04 bztMinamoto 阅读(264) 评论(0) 推荐(0)
摘要:题解 "传送门" 题解 然而要我来说我感觉只是个爆搜啊…… 阅读全文
posted @ 2019-02-28 16:37 bztMinamoto 阅读(324) 评论(0) 推荐(0)
摘要:题面 题解 首先,点变黑的过程是不可逆的,~~黑化了就再也洗不白了~~ 其次,对于$v$的祖先$rt$,$rt$能用来更新答案当且仅当$sz_{rt} sz_{x}$,其中$sz$表示子树中黑点的个数,$x$表示$rt$走到$v$的路径上的第二个节点 每一次染黑一个新的点$u$之后,我们要让它所有祖 阅读全文
posted @ 2019-02-24 20:59 bztMinamoto 阅读(253) 评论(0) 推荐(2)
摘要:题面 Pinball的游戏界面由m+2行、n列组成。第一行在顶端。一个球会从第一行的某一列出发,开始垂直下落,界面上有一些漏斗,一共有m个漏斗分别放在第2~m+1行,第i个漏斗的作用是把经过第i+1行且列数在Ai~Bi之间的球,将其移到下一行的第Ci列。 使用第i个漏斗需要支付Di的价钱,你需要保留 阅读全文
posted @ 2019-02-11 12:13 bztMinamoto 阅读(166) 评论(0) 推荐(0)
摘要:"传送门" 先考虑一个贪心,对于一条边来说,如果当前这个序列中在它的子树中的元素个数为奇数个,那么这条边就会被一组匹配经过,否则就不会 考虑反证法,如果在这条边两边的元素个数都是偶数,那么至少有两组匹配经过它,那么把这两条路径都删去这条边可以更优。如果两边是奇数,一定至少有一条路径经过它,去掉这组匹 阅读全文
posted @ 2019-01-18 10:49 bztMinamoto 阅读(206) 评论(0) 推荐(0)
摘要:"传送门(uoj)" "传送门(洛谷)" 这里是题解~~以及我的卡常数历程~~ ~~话说后面那几组数据莫不是lxl出的这么毒~~ 首先不难发现这个东西把查询前缀和变成了查询后缀和,结果就是查了$[l 1,r 1]$的区间和。因为模$2$意义下的加法就是异或,所以错误查询和正确查询相等就意味着$a[l 阅读全文
posted @ 2019-01-12 08:45 bztMinamoto 阅读(298) 评论(0) 推荐(0)
摘要:"传送门" 只有区间加区间开方我都会……然而加在一起我就gg了…… 然后这题的做法就是对于区间加直接打标记,对于区间开方,如果这个区间的最大值等于最小值就直接区间覆盖(据ljh_2000大佬说这个区间覆盖可以改成区间减去一个数),否则的话如果最小值等于最大值加一,且最小值和最大值开方之后减少的值一样 阅读全文
posted @ 2019-01-10 12:18 bztMinamoto 阅读(236) 评论(0) 推荐(0)
摘要:"传送门" 不难看出就是要先求区间积,再求这个区间积的$\varphi$ 因为$\varphi(x)=x\times\frac{p_1 1}{p_1}\times\frac{p_2 1}{p_2}\times ...$,又因为质数总共只有$60$个,我们可以用一个$long\ long$来压位,表示 阅读全文
posted @ 2019-01-09 13:45 bztMinamoto 阅读(210) 评论(0) 推荐(0)
摘要:"传送门" 好迷啊……膜一下 "ljz" 考虑每个操作,如果把操作按先后顺序放到序列上的话,操作一就是把$w_i$的石子放到某个节点,那么就是在序列末端加入$w_i$,然后根据贪心肯定要把它所有儿子的石子拿走,也就是要减去$\sum w_{son}$ 那么每个点的答案就是序列的最大前缀 因为父亲节点 阅读全文
posted @ 2019-01-07 10:01 bztMinamoto 阅读(833) 评论(3) 推荐(0)
摘要:"传送门" 设$lim=2^n 1$,对于一个区间$[l,r]$来说,如果$sum\neq lim$且能换出$x$并换进$y$来,使得$sum\bigoplus a_x\bigoplus a_y=lim$,那么$a_x\bigoplus a_y$是个定值,所以如果对于每一个$x$,它对应的$y$都在 阅读全文
posted @ 2019-01-06 22:34 bztMinamoto 阅读(299) 评论(0) 推荐(0)

Live2D