并查集
WorldWide_D
这个作者很懒,什么都没留下…
展开
-
[Tjoi2016&Heoi2016]树
Description在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖先)你能帮帮他吗?Input输入第一行两个正整数N和Q分别表示节点个数原创 2016-07-11 15:59:07 · 855 阅读 · 0 评论 -
[codeforces217E]Alien DNA
题目大意给你一个字符串和n个操作,每个操作用li,ri表示:把当前字符串[li,ri]区间取出,把取出的字符串重新1–r-l+1编号,然后编号为奇数的按顺序写下来,再把编号为偶数的按顺序写下来,把得到的新字符串加在区间后面。例如: s1s2s3s4s5s6 l=2 r=4 操作后的字符串变成s1s2s3s4s3s2s4s5s6最后输出前k个字符。k≤3000000 n≤5000分析正着做显然原创 2016-08-11 21:56:29 · 779 阅读 · 0 评论 -
[hdu5604/bestcoder67E]merge
题目大意现在有n个数,范围是1——n。初始时每个数都在不同集合里。 有n-1个操作,每次操作给定x,y,把x和y所在集合合并(保证x,y不在同一个集合),然后输出新集合最小、最大值在给定的规则下最快能在什么时候相遇。 有T组数据。 n≤100000 T≤5分析首先是对于一个集合求答案的问题。 如果确定了在哪两个数中间相遇,那么答案就是两个数与对应位置距离的较大值。 枚举一定会超时,但是有原创 2016-08-14 18:54:31 · 412 阅读 · 0 评论 -
[51nod1743]雪之国度
题目大意给你n个点m条边的无向图,每个点有一个权值w,每条边的权值就是它连接两个点的权值差。有q个询问,给出两个点u,v,要从u到v找两条没有相同边的路径,使得两条路径上所有边权最大值最小。如果不足两条路径则输出”infinitely”。3<=N<=100000, 3<=M<=500000, 1<=Q<=100000, 0<=Wi<=200000分析首先判断是否存在两条路径:显然如果两个点不在一个边原创 2016-11-16 17:09:26 · 734 阅读 · 0 评论 -
[codeforces856D]Masha and Cactus
题目大意给定n个点的树,接下来给出m条非树边,每条非树边有一个价值。现在你可以添加一些非树边,在保证每个点最多在一个简单环的情况下,求价值和最大值。n,m≤200000分析首先考虑dp,设f[i]表示以i为根的子树的答案。 把每条非树边挂在lca上。求f[i]时,首先处理不选择一条lca为i的情况。接下来枚举一条lca=i的非树边,加上其它儿子的f值、该边所覆盖的路径的答案。 难点就在于求一条路原创 2017-09-16 09:15:43 · 753 阅读 · 0 评论 -
[bzoj5101] [POI2018]Powód
题目大意有一个n*m的网格图,给定相邻的格子之间墙的高度,并且默认边界的墙的高度是无穷大的。再给定水位上限H,问有多少种可能的水位。n*m≤500000 H≤1,000,000,000分析可以把每个格子看成一个点,相邻的点之间有边权为墙高度的边,然后求一次最小生成树。 在克鲁斯卡尔算法过程中,当两个点在一个联通块时,水位一定是一样的。 那么再设Ans[x]表示联通块x当前的答案。新加入一条原创 2017-12-24 16:01:02 · 595 阅读 · 0 评论 -
[codeforces896E] Welcome home, Chtholly
题目大意给定一个n个数的序列。m次操作:1. 给区间[l,r]中所有大于x的数减x 2. 询问区间[l,r]中数值为x的数个数。n,m≤100000 1≤a[i],x≤100000分析这题?循环展开然后optimize一下就过了这是由乃题,我们应该考虑分块。值域范围比较小,我们可以直接记录cnt[i][j]表示块i中数值为j的数个数。 然后再用并查集把同一块中数值相同的元素缩在一起。 对于原创 2018-01-19 20:31:10 · 619 阅读 · 0 评论 -
[codeforces 938G]Shortest Path Queries
题目大意给定一个n个点m条边的无向联通简单图,边有边权。接下来有q次操作,操作有三种: 1. 添加一条边,保证添加后仍是简单图 2. 删除一条边,保证删除后仍是联通图 3. 给定x,y,求所有x到y的路径中所有边权异或和最小值(一条边经过多次算多次) n,m,q≤200000 边权<230<2^{30}分析首先我们联想到CF另一道题845G,这题没有前两个操作,只询问1到n的答案。 那道原创 2018-03-01 15:27:56 · 803 阅读 · 0 评论