随笔分类 -  NOIP-思想-启发式合并

摘要:题意 思路 首先有一点是肯定的,掉落的形状会像一个三角形一样。(因为总体的排列像砖墙一样,所以掉落范围只能缩小不能扩大) 于是我们可以维护初始的所有区间,然后在向上转移的过程中合并区间、统计答案。 代码 阅读全文
posted @ 2019-11-02 12:19 Ilverene 阅读(213) 评论(0) 推荐(0)
摘要:题意 给定一个有多种颜色组成的序列,以及两种操作: 1. 将某种颜色全部染成另一种颜色。 2. 询问颜色段的数量。 思路 将每一种颜色的位置分别存入链表,然后染色的时候启发式合并。 这道题数据出的比较毒瘤,有同种颜色互相染色的数据,还有将已经不存在的颜色进行染色的数据,需要特判。 代码 阅读全文
posted @ 2019-09-07 22:11 Ilverene 阅读(174) 评论(0) 推荐(0)
摘要:题意 有一个森林,初始有一定的边。给定两种操作: 1. 查询两点路径上k小值。 2. 联通两点。 强制在线。 思路 维护主席树,合并的时候按照子树大小dfs暴力合。 代码 学校OJ AC BZOJ MLE Luogu MLE (然而学校OJ空间限制比洛谷小一半???) cpp include usi 阅读全文
posted @ 2019-09-07 16:24 Ilverene 阅读(236) 评论(0) 推荐(0)
摘要:题意 给定n个点以及两种操作: 1. 将两个点连接在一起 2. 询问两个点最早在什么时候联通。 强制在线。 思路 将时间作为权值,在并查集上跑lca即可。 代码 cpp include using namespace std; namespace StandardIO { templateinlin 阅读全文
posted @ 2019-09-07 13:04 Ilverene 阅读(167) 评论(0) 推荐(0)
摘要:题意 给定一颗树,要求将其上的节点分成若干组,使得每一组的节点互相不拥有祖先 后代关系。定义每一组的值为该组节点权值最大值,求值总和最小值。 思路 硬上不是很显然的贪心,但是数据中链的情况给了提示。 考虑链的情况: 对于根节点两侧的链,我们分别排序,然后覆盖选取即可。 这个贪心的正确性是显然的。 现 阅读全文
posted @ 2019-09-05 20:05 Ilverene 阅读(165) 评论(0) 推荐(0)
摘要:题意 给定一颗有根树,节点编号为1,2,...,N,其中点1为树的根。节点i有权值$V[i]$。你现在需要修改节点的权值,使得它们满足以下性质: 对于任意的节点i和j。若节点i为节点j的祖先,则有$V[i]\leq V[j]$。 现在的问题是,你最少需要修改多少个节点的权值,才能满足上述性质。注意, 阅读全文
posted @ 2019-08-27 15:51 Ilverene 阅读(653) 评论(0) 推荐(0)