
题解
文章平均质量分 78
Hexrt
南昌航空大学软件学院,ACMerRetired。
求知若渴,虚心若愚。
傲慢与偏见才是进步的最大阻碍。
展开
-
H. Reverse the String【哈希+二分】
传送门 codeforces H. Reverse the String题意给定一个字符串,求可以将字符串中的任意区间的一个连续子串翻转一次的前提下,求翻转后字典序最小的字符串是什么分析将原串的所有字符排序,翻转肯定是从排序后的字符串与原字符串不同的位置开始的那么可以遍历翻转的结束位置,比较所有翻转后字符串的大小假如当前字典序最小的是 sss,那么和翻转后的字符串 ttt比较时,可以先找到两个字符串的 最长公共前缀(lcplcplcp),前面都是相同的,只需比较不同的第一个位置的大小即可此时,原创 2022-03-07 20:07:07 · 984 阅读 · 0 评论 -
bzoj2870. 最长道路tree【点分治】【边分治】
传送门HHH 城很大,有NNN个路口(从111到NNN编号),路口之间有N−1N-1N−1边,使得任意两个路口都能互相到达,这些道路的长度我们视作一样。每个路口都有很多车辆来往,所以每个路口i都有一个拥挤程度v[i]v[i]v[i],我们认为从路口sss走到路口ttt的痛苦程度为sss到ttt的路径上拥挤程度的最小值,乘上这条路径上的路口个数所得的积。现在请你求出痛苦程度最大的一条路径,你只需输出这个痛苦程度。简化版描述:给定一棵NNN个点的树,求树上一条链使得链的长度乘链上所有点中的最小权值所得的积原创 2021-09-02 11:25:37 · 305 阅读 · 0 评论 -
牛客2021年七夕节比赛 F 清楚姐姐的翅膀们【带花树】
清 楚 姐 姐 的 后 宫 有 很 多 妹 子 , 她 们 都 是 清 楚 姐 姐 的 翅 膀 。$N$个妹子,$M$个蝴蝶结每个蝴蝶结能给给定的几个人求获得$>=2$个蝴蝶结的妹子的**最多**数量原创 2021-09-01 17:40:45 · 332 阅读 · 0 评论 -
bzoj2051. A Problem For Fun 【动态点分治】+【动态开点权值线段树】
bzoj2051. A Problem For Fun 【动态点分治】+【动态开点权值线段树】给出一个 N个结点的树,每条边有一个正整数权值,定义两个结点的距离为连接这两个结点路径上边权的和。对于每个结点 i,它到其他 N−1个结点都有一个距离,将这些距离从小到大排序,输出第 K个距离。原创 2021-08-29 13:42:10 · 187 阅读 · 0 评论 -
P2824 【[HEOI2016/TJOI2016]排序】【线段树分裂】+【珂朵莉树】详解
戳这里,离线做法给定一个长度为NNN的数组,对MMM个区间 l∼rl \sim rl∼r 进行排序求最后 ppp 位置的值排序分(正序和倒序两种)分析上面给的链接有离线的做法,算是一个比较套路的做法,用线段树维护010101序列可以在 lognlognlogn 的时间内实现排序,所以通过二分最终答案可以得到值但是这题强制要求在线呢?这样的话,我们需要使用数据结构维护这些数的状态如何维护信息我们思考这样一个过程:初始我们有NNN个区间,都是有序的(每个数自成一个区间)一旦将区间l∼rl原创 2021-08-24 19:56:28 · 379 阅读 · 2 评论 -
CF-558-E. A Simple Task【线段树区间set】
传送门给定一个长度为NNN字符串,均为小写字母对区间进行MMM次排序,从小到大或者从大到小求,最后的字符串长什么样分析这里发现,小写字母只有26个,对于每次排序操作,就让这些字符单独排序,正序就先排a,在a排完的位置后排b,以此类推那么,就构建26棵线段树,维护当前树表示字母出现的位置对于排序来说,对某个区间字母进行排序,为区间setsetset,要知道有多少个字母进行排序,又是区间queryqueryquery,所以线段树支持这两个功能足以,为了保证复杂度,懒惰标记是要有的代码//CF5原创 2021-08-21 17:29:41 · 186 阅读 · 0 评论 -
CF-940-F. Machine Learning【带修莫队】
传送门维护区间数字出现次数的mexmexmex要求修改,支持离线分析支持离线,考虑莫队区间数字出现次数的mexmexmex经典带修莫队直接维护数字出现的次数找mexmexmex的时候,可以直接暴力找证明:当最差的时候,每种次数都出现了一遍,且这个次数最高也就是,1+2+3+4+...x=N1+2+3+4+... x = N1+2+3+4+...x=N此时x最高到 N\sqrt{N}N找mexmexmex最差也就是N\sqrt{N}N,乘上莫队复杂度,可以过如果信不过的话,可以使原创 2021-08-21 17:21:22 · 192 阅读 · 0 评论 -
P1903 [国家集训队]数颜色 / 维护队列【带修莫队】
维护区间不同的数,带修改,离线传送门分析带修莫队,在原来莫队的基础上增加一维,时间维度原来的简单莫队就是在区间 l∼rl \sim rl∼r,调整左右端点位置,现在还要调整时间的位置不修改的区间不同数,另一题 SP3267 DQUERY - D-query【莫队】或【主席树】 有详细解释建立在上面的基础上,我们增加一维对每个询问增加一个维度ttt,表示询问前的最后一次修改的时间我们在回答询问的时候一定要将前ttt次修改都执行完,才能得到正确的答案参考代码 int l = 1, r = 0原创 2021-08-21 17:05:54 · 120 阅读 · 0 评论 -
P3709 大爷的字符串题【普通莫队】
传送门给定一个长度为NNN的数组,求区间l∼rl \sim rl∼r任意排序后,最小严格递增序列的个数(=区间众数)分析就是求l∼rl \sim rl∼r 区间的众数,离线,不修改考虑莫队增加一个数,计数器删除原来次数的出现次数,更新现在的次数,更新答案删除一个属,计数器更新原来的出现次数,跟新现在的次数,再跟新答案void add(int x) { --same[cnt[arr[x]]]; ++same[++cnt[arr[x]]]; mo = max(mo, cnt[arr[x]])原创 2021-08-21 16:57:17 · 91 阅读 · 0 评论 -
CF-617-E. XOR and Favorite Number【普通莫队】
给定一个长度为NNN的数组,一个整数KKK,求区间l∼rl \sim rl∼r中有多少pair{i,j},i<=jpair\{i,j\},i<=jpair{i,j},i<=j,满足ai⊕ai+1⊕...⊕aj=Ka_i \oplus a_{i+1} \oplus ... \oplus a_j=Kai⊕ai+1⊕...⊕aj=K传送门分析先考虑暴力求 ai⊕ai+1⊕...⊕aja_i \oplus a_{i+1} \oplus ... \oplus a_jai⊕ai+1⊕原创 2021-08-21 16:31:04 · 93 阅读 · 0 评论 -
2019 icpc西安邀请赛 E. Tree【树链剖分+区间异或和】
2019 icpc西安邀请赛 E. Tree【树链剖分+区间异或和】求树上简单路径的异或和【树链剖分】+【线段树】支持,修改链上的值为 a i ∣ t a_i|t ai∣t 以及 a i & t a_i\&t ai&t对位考虑,每一位建立一颗线段树,维护链上值的位情况原创 2021-08-14 16:56:45 · 172 阅读 · 0 评论 -
P3157 [CQOI2011]动态逆序对【CDQ分治-三维带修改】
现在给出 1 ∼ n 1 \sim n 1∼n 的一个排列,按照某种顺序依次删除 m m m 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。CDQ分治-三维偏序【操作时间】【数字下标】【数值】操作时间优先级高,必然排在第一维,对操作时间进行排序【数字下标】和【数值】优先级相同,任选一个进行分治原创 2021-08-14 16:30:33 · 166 阅读 · 0 评论 -
BZOJ.1176. [Balkan2007]Mokia【CDQ分治-三维】
BZOJ.1176. [Balkan2007]Mokia【CDQ分治-三维】维护一个 W ∗ W的矩阵,初始值均为 S S S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数 M < = 160000 ,询问数 Q < = 10000 , W < = 2000000带单点修改的矩阵和离线查询原创 2021-08-14 15:34:51 · 100 阅读 · 0 评论 -
BZOJ.4552. [Tjoi2016&Heoi2016]排序【离线二分+线段树】
传送门给定长度为NNN的序列,再给出MMM次排序操作,[l,r][l,r][l,r]区间排序,递增或者递减两种,最后要求排序后PPP位置的数是什么分析由于是不强制在线,我们考虑离线做法对于一个数来说,它要么大于某个数XXX,要么小于等于XXX对于这种两面性,我们可以二分答案,把这个数抽象为111(小于等于),000(大于),对01序列进行排序。01序列可以通过线段树高效维护排序。区间set,区间求和就能解决// /* @Author: YooQ*/#include <bits/原创 2021-08-14 11:01:49 · 143 阅读 · 0 评论 -
K-th number-静态区间第K大【划分树模板】
传送门给定l,rl,rl,r求区间第kkk大,静态分析划分树模板代码///* @Author: YooQ*/#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;#define sc scanf#define pr printf#define ll long long#define int long long#define FILE_OU原创 2021-08-14 02:22:55 · 216 阅读 · 0 评论 -
P3810 【CDQ分治模板】三维偏序(陌上花开)
传送门NNN个元素,每个元素三个属性{ai,bi,ci}\{a_i,b_i,c_i\}{ai,bi,ci},求每个iii,满足aj<=ai,bj<=bi,cj<=cia_j<=a_i,b_j<=b_i,c_j<=c_iaj<=ai,bj<=bi,cj<=ci条件的jjj的个数说白了就是,三维空间中,某个点与原点围成的图形中覆盖了多少点分析经典CDQCDQCDQ三位偏序问题对于二维的,我们可以通过,先排序第一维(sortsort原创 2021-08-14 02:13:19 · 135 阅读 · 0 评论 -
HDU.1541.Stars【CDQ分治-简单二维偏序问题】
传送门给定NNN个点的坐标,求每个点在它左下方有多少个点(xxx相等和yyy相等也算)分析典型的CDQCDQCDQ分治二维偏序问题既然是二维的,就像归并排序一样,将第一维数字下标变有序(归并排序给出初始序列的时候下标就有序了),再将值进行排序,且在归并的时候能够计算逆序对,(i<j&&ai>aj)(i<j\&\&a_i > a_j)(i<j&&ai>aj)此题也能用归并排序(CDQ分治)的思路写,当然也能用树状原创 2021-08-14 01:59:09 · 1209 阅读 · 0 评论 -
BZOJ.3551. [ONTAK2010]Peaks加强版
Kruskal重构树 强制在线,主要就考一个【重构树】以及【树链剖分】+【线段树区间第K大】,离散化建立一颗权值线段树即可重构树的性质,某点往根节点跳,找到能够其值等于<=限制值的最远的节点,此节点的所有子树的叶子节点均可在不超过该节点权值的情况下相互到达。也就是题中的连通块。通过树链剖分和主席树将这些叶子节点的区间信息维护起来找第K大(为什么能维护呢?子树在树剖过后是连续的区间)原创 2021-08-14 01:44:54 · 145 阅读 · 0 评论 -
HDU3473.Minimum Sum【划分树加标记】
传送门给定一个NNN长度的数组,求区间[l,r][l,r][l,r]找到一个整数xxx满足∑i=lr∣x−xi∣\sum_{i=l}^{r}{|x-x_i|}∑i=lr∣x−xi∣最小也就是找中位数,区间第 (len+1)/2(len+1)/2(len+1)/2 大分析找静态区间第KKK大可以通过划分树或者主席树找同时要找到xi<=xx_i<=xxi<=x的和,以及xi>xx_i>xxi>x的和主席树,维护权值为下标的同时,维护权值乘个数的和即可原创 2021-08-12 19:17:27 · 91 阅读 · 0 评论 -
BZOJ.2161. 布娃娃【整体二分】
传送门NNN 个区间记为 [l,r][l,r][l,r]形式,魅力值,记为CiC_iCi形式NNN 个耐力值,记为 PiP_iPi形式求覆盖PiP_iPi的区间内,魅力值第iii大是多少分析假设我们只有一个PPP,考虑单次二分情况对于PPP来说,我们要求第iii小(从小到大排序第iii个)覆盖区间的魅力值务必要先对区间按CiC_iCi魅力值排序假设我们从区间[1,N][1,N][1,N]开始二分,中点为midmidmid将[l,mid][l,mid][l,mid]区间数组里面的区间原创 2021-08-12 11:33:52 · 208 阅读 · 0 评论 -
P3224 [HNOI2012]永无乡【并查集、线段树合并】
传送门在线维护连通块里面权值的第KKK大分析维护集合第K大,由于每个点的权值都是不同的,且值域范围111~NNN,考虑使用动态开点权值线段树维护。剩下的就是,如何在线维护加入一个集合到一个集合里面的数据,线段树合并能够在此条件下有良好的复杂度,实现将一个集合里面的桶合并到另一个集合里面(权值线段树就是一个桶线段树)。注意,在并查集维护点联通的时候,线段树合并也要朝着并查集合并的防线进行合并。比如有操作father[y]=xfather[y] = xfather[y]=x 此时 root[x]=m原创 2021-08-09 11:42:33 · 170 阅读 · 0 评论 -
P2894 [USACO08FEB]Hotel G
传送门一个NNN的数组支持两种操作查询111 ~ NNN 长度最少为 xxx 连续的 111将区间 [l,r][l,r][l,r] 的值置为 x,x∈{0,1}x,x \in \{0,1\}x,x∈{0,1}分析这道题和【Tunnel Warfare】有点相关同样是线段树维护这里有点像,区间连续最大值了。对于每个位置,维护三个信息{k,l,r}\{k, l, r\}{k,l,r}kkk 为区间连续的111长度lll 为区间左端点向右走,有多少连续的111,也就是连续最后一个111原创 2021-08-08 15:35:09 · 182 阅读 · 0 评论 -
Tunnel Warfare
传送门NNN的数组,初始为111支持三种操作将下标为xxx 的值变为 000求与下标 xxx 相连的连续的 111 的长度恢复上一次改为 000 的操作分析线段树维护值01序列这道题和【Hotel】有点相关此题要维护x左边相连最远多少 + 右边最远多少那么我们就维护左端点和右端点最远的距离!设 lll 为区间左端点,能预见的最远到右边连续第一个000的位置设 rrr为区间右端点,能预见的最远到左边连续第一个000的位置(连续最后一个111不就是前一个嘛)假设原创 2021-08-08 15:08:40 · 127 阅读 · 0 评论 -
P1600 [NOIP2016 提高组] 天天爱跑步
传送门无根树,NNN个节点给出 MMM 条链的起点 sss 和 ttt,起点 sss 从000秒开始往 ttt 走,每秒走一个节点,每个节点有一个查看时间wiw_iwi,只有在当前查看时间看到某个刚好走到当前节点 ppp ,此时就算sss造成一点贡献求每个节点能够看到多少个分析这题和之前一道【雨天的尾巴】很像,都是对链进行某种类型的操作,然后统计这种类型的贡献思路 【树上差分】+【线段树合并】路径一般对 两个端点和lcalcalca 进行操作,这里由于有时间的限制,速度一定,就原创 2021-08-08 14:34:26 · 141 阅读 · 0 评论 -
2019 ICPC 南昌 K-tree【树上启发式合并+线段树】
传送门分析dsu on tree + 线段树给定一个有根树,每个节点有一个权值找到有多少不同的对(u,v)(u, v)(u,v)满足条件u,vu,vu,v任何一个都不是另一个的祖先节点,也就是说,u,vu,vu,v 在不同的子树里uvalue+vvalue=2∗lca(u,v)valueu_{value}+v_{value}=2*lca(u, v)_{value}uvalue+vvalue=2∗lca(u,v)valuedepu+depv−2∗deplca<=Kde原创 2021-08-07 01:10:43 · 263 阅读 · 0 评论 -
[ONTAK2010]Peaks【并查集+线段树合并】
文章目录分析代码传送门在Bytemountains有NNN座山峰,每座山峰有他的高度hih_ihi。有些山峰之间有双向道路相连,共MMM条路径,每条路径有一个困难值,这个值越大表示越难走,现在有QQQ组询问,每组询问询问从点vvv开始只经过困难值小于等于xxx的路径所能到达的山峰中第kkk高的山峰的高度,如果无解输出−1-1−1。小声嘀咕原题面中,没有说输出高度,以为是要输出第k高山峰的编号,但是我想着会不会出现并列的情况,要输出多个,一看,竟然没有说,那就先理解为输出高度吧。(输出编号要考虑更原创 2021-08-07 00:35:41 · 187 阅读 · 0 评论 -
异或树-线段树合并
文章目录分析代码传送门题面信息有一棵n个节点的异或树,111号点为根,每个节点有一个权值wiwiwi。每次询问给出uuu,xxx,询问子树uuu内,点的权值大于x的所有权值异或xxx的和。由于这是一棵异或树,所以,如果一个数出现了两次,那么这两个点的权值就消失了(点并没有消失,即树的形态没有发生变化,只是在计算时忽略这两个点的权值。)消失过程发生在一次询问时,如果子树内两个点的权值一样,那么这两个点的权值同时消失,直到无法再有点对消失后查询。分析在子树内,一个值出现了偶数次就不被计算,视为不可原创 2021-08-07 00:14:01 · 310 阅读 · 0 评论 -
[Vani有约会]雨天的尾巴【线段树合并】
[Vani有约会]雨天的尾巴传送门给定一棵树,每次操作 (x,y,z)(x, y, z)(x,y,z) ,在xxx~yyy 的链上zzz 类型的数量+1操作后,求每个节点最多数量的类型是什么,相同输出编号最小的类型分析对于链上操作,首先想到的树链剖分,对于链 xxx~yyy 的每个段都加给类型加上一,最后求最大如果这样的话,区间加的 lazylazylazy 就是一个类型,最后 push_downpush\_downpush_down 的时候,给每个节点的桶更新也就说,按上面这样维护的话,每个原创 2021-08-06 23:09:07 · 164 阅读 · 0 评论 -
BZOJ-2809 [Apio2012]dispatching
文章目录题面题解题面Description在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿。在这个帮派里,有一名忍者被称之为 Master。除了 Master以外,每名忍者都有且仅有一个上级。为保密,同时增强忍者们的领导力,所有与他们工作相关的指令总是由上级发送给他的直接下属,而不允许通过其他的方式发送。现在你要招募一批忍者,并把它们派遣给顾客。你需要为每个被派遣的忍者 支付一定的薪水,同时使得支付的薪水总额不超过你的预算。另外,为了发送指令,你需要选择一名忍者作为管理者,要原创 2021-08-04 23:27:16 · 100 阅读 · 0 评论 -
POJ-3016 K-Monotonic
文章目录题面题解题面DescriptionA sequence of integer numbers is called strictly monotonically increasing if every term of the sequence is strictly greater than the one preceding it. Similarly, a sequence is called strictly monotonically decreasing if every term i原创 2021-08-04 23:27:00 · 176 阅读 · 0 评论 -
POJ-2010 Moo University - Financial Aid
文章目录题面题解题面DescriptionBessie noted that although humans have many universities they can attend, cows have none. To remedy this problem, she and her fellow cows formed a new university called The University of Wisconsin-Farmside,“Moo U” for short.Not wis原创 2021-08-04 23:26:32 · 219 阅读 · 0 评论 -
HDU4006 The kth great number
文章目录题面题解题面Problem DescriptionXiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose to write down a number, or ask Xiao Bao what the kth great number is. Because the number written by Xiao Ming is too much, Xiao Bao is原创 2021-08-04 23:26:15 · 196 阅读 · 0 评论 -
BZOJ-4003 [JLOI2015]城池攻占
文章目录题面题解题面传送门小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi <i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数表示,其中第 i 个骑士的初始战斗力为 si,第一个攻击的城池为 ci。每个城池有一个防御值 hi,如果一个骑士的战斗力大于等于城池的生命值,那么骑士就可以占领这座城池;否则占领失败,骑士将在这座城池原创 2021-08-04 23:25:29 · 205 阅读 · 0 评论 -
杭电2021多校第二场 HDU 6962 I love tree
题面题目传送门(HDU 6962 I love tree)Given a tree with n nodes and q operations, there are two kinds of operations.1 a b : for a chain <a, b>, increase the value of x2 to the x-th point on this chainfor example the chain from a to b=(x1,x2,x3,x4,x5),aft原创 2021-07-25 16:09:40 · 698 阅读 · 3 评论 -
天梯赛-最短路径-天梯地图&&直捣黄龙-题解
题干7-28 天梯地图本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2 ≤ N ≤ 500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信息:V...原创 2020-04-07 18:55:03 · 873 阅读 · 1 评论 -
天梯赛-愿天下有情人都是失散多年的兄妹-题解
题干7-42 愿天下有情人都是失散多年的兄妹呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数N(2 ≤ N ≤104),随后N行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中ID是5位...原创 2020-04-07 17:54:22 · 2810 阅读 · 6 评论