01 2019 档案
摘要:BZOJ4552 [Tjoi2016&Heoi2016]排序 题目描述 [传送门][1] 题目分析 对于一个排列直接找明显不现实,考虑将其转化成一个比较容易计算的排列上去。 明显对于一个$01$序列,我们进行如上操作是很容易的,首先计算区间内$1$的个数$cnt$,然后以升序排列为例,我们将$[L,
阅读全文
摘要:BZOJ4653 [Noi2016]区间 题目描述 [传送门][1] 题目分析 发现答案具有单调性,所以可以对所有区间排序之后再求解。发现部分数据值域比较小,所以思考这题是不是通过权值线段树出解。一个一个向线段树里添加区间一直到最大值大于$m$了为止,然后再一个一个删除一直删除到最大值小于$m$,做
阅读全文
摘要:BZOJ4487 [Jsoi2015]染色问题 题目描述 [传送门][1] 题目分析 发现三个限制,大力容斥推出式子是$\sum_{i=0}^{N}\sum_{j=0}^{M}\sum_{k=0}^{C}( 1)^{N+M+C i j k} (k+1)^{i j} \binom{N}{i} \bin
阅读全文
摘要:Luogu2664 树上游戏 题目描述 [传送门][1] 题目分析 考虑到没有修改,只有一次询问,判断应该点分治没跑了。 可以发现有这样一个性质: 如果有一个点$i$的颜色是其根到这个点的链上第一次出现的,则与这个点的$lca$为根的点的$sum$都会增加$size[i]$。 (我们此时不考虑其他点
阅读全文
摘要:BZOJ2599 [IOI2011]Race 题目描述 [传送门][1]好像权限题。。。。 [传送门][2] [1]: https://www.lydsy.com/JudgeOnline/problem.php?id=2599 [2]: https://www.luogu.org/problemne
阅读全文
摘要:BZOJ 1058 [ZJOI2007]报表统计 题目描述 [传送门][1] 题目分析 操作看上去都不是很困难的样子。 插入操作好像不落俗套,考虑使用一个$vector$,每次搞一下当前块的最后值和下一个的开头,记录一下即可。 第二个操作看上去,可以写个堆,或者写个平衡树,应该都可以维护。 第三个操
阅读全文
摘要:BZOJ4568 [Scoi2016]幸运数字 题目描述 [传送门][1] 题目分析 这个题,求树上链的$XOR$最大值,可以不选某些点。 考虑到线性基可以用很快的速度求出$XOR$的最大值,我们首先可以确定使用线性基来搞定这个题的询问。 然后可以考虑用树剖解决,发现一个问题,使用树剖时,由于一边跳
阅读全文
摘要:BZOJ2115 [Wc2011] Xor 题目描述 [传送门][1] [1]: https://www.lydsy.com/JudgeOnline/problem.php?id=2115 题目分析 需要求最短的XOR路径,可以无限经过点和边。考虑每条路径可能造成的贡献。明显一条边走两次就没贡献了。
阅读全文
摘要:BZOJ2157 旅游 题目描述 [传送门][1] 题目分析 给出一棵树,然后要求维护链边权和,链上最大最小值,以及链乘$ 1$。 考虑使用树链剖分,先把边权转化为父节点点权,然后直接维护就可以了。问题主要在于最小最大值在下传标记时的更改。显而易见的是这俩数都取反之后直接$swap$就可以了。 注意
阅读全文
摘要:SP16580 QTREE7 Query on a tree VII 题目描述 [传送门][1] 题目分析 首先1,2操作就是喜闻乐见的基本操作。可以开两棵LCT,然后分别维护两种颜色。 对于0操作,实际上是查询子树最大值的一个操作。考虑子树和是如何维护的,我们设置了一个$si$数组单独维护。可以考
阅读全文
摘要:BZOJ3626 [LNOI2014]LCA 题目描述 [传送门][1] [1]: https://www.lydsy.com/JudgeOnline/problem.php?id=3626 题目分析 可以考虑不计时间复杂度怎么做,求出所有$LCA$然后暴力求和。 那么可以发现这个过程应该是具有可优
阅读全文
摘要:BZOJ2816 [ZJOI2012]网络 题面描述 [传送门][1] 题目分析 首先可以发现这题,如果边都是一个颜色,那么$1$操作就啥用都没有了,就变成了一个裸的树链剖分。。。或者我们也可以用lct来实现这个过程。那么我们又发现这个颜色种类确实不多啊,我们完全可以在$O(mlognC)$的时间复
阅读全文
摘要:BZOJ 3531[Sdoi2014]旅行 题面描述 [传送门][1] 题目分析 可以考虑到,如果这个题所有城市都只信一种宗教的话,就是一个sb树剖,直接进行链的查询和修改就能搞定。多个宗教的话,可以有一种暴力的思路对每一种宗教开线段树。但是空间不大够,考虑动态开点,把每个宗教类型当成不同的树根,然
阅读全文
摘要:BZOJ4998 星球联盟 题目描述 [传送门][1] 题目分析 发现题目说白了就是让你动态维护强连通分量。决定使用lct来维护,外面套一个并查集来维护连通性,查的时候直接输出当前集合的大小就可以了。 是代码呢 cpp include using namespace std; const int M
阅读全文
摘要:BZOJ2959 长跑 题目描述: [传送门][1] 题目分析: 首先发现这个题要进行动态连边操作。不管了先把lct板子打上去。然后仔细看一下,题目中那个只能朝边的一个方向跑的条件其实就限制图的状态在缩完点之后始终是一棵树。那么询问操作实际上就是询问了一条固定的链的权值和。考虑使用lct维护,同时在
阅读全文