随笔分类 -  ---数据结构---

摘要:题目链接:hdu 5002 Tree 题意: 给你一棵树,每个节点有个权值。 现在有四种操作 1. 删一条边加一条边,保证操作后还是一棵树。 2. 将一条链的节点的权值设为x. 3. 将一条链的节点的权值加上x. 4. 询问一条链的第二大权值,并且输出有多少个。 题解: 很裸的LCT,维护一下就行了 阅读全文
posted @ 2017-10-26 18:23 bin_gege 阅读(270) 评论(0) 推荐(0) 编辑
摘要:题目链接:Wannafly挑战赛1 C MMSet2 题意: 中文不解释。 题解: 比赛的时候是用的lca+贪心。 今天学了学虚树,这题实际就是求一个虚树的直径。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++ 阅读全文
posted @ 2017-10-24 20:37 bin_gege 阅读(359) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 5398 GCD Tree 题意: 给你一个n,让你输出一个最大生成树的价值。 有n个点,任意两点有条边,边权为gcd(u,v)。 题解: 由于题意要让你输出所有的1e5内所有的n,所以只能动态维护最大生成树。(LCT可以做到) 显然可能有用的边只能是x向x的因子连的边。 LCT如 阅读全文
posted @ 2017-10-22 10:45 bin_gege 阅读(517) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 5967 小R与手机 题意: 有n个手机,每个手机有一个呼叫转移。如果形成了环就不能接通。 现在有两个操作: 1 询问打电话x,最终接到的是那个电话,如果有环,输出-1 2 将x的呼叫转移改为y 题解: 用LCT来维护这个森林的关系。 显然要形成环的话,肯定是树跟连向了该树内的点。 阅读全文
posted @ 2017-10-19 22:51 bin_gege 阅读(382) 评论(0) 推荐(0) 编辑
摘要:题目链接:BZOJ 2243: [SDOI2011]染色 题意: 给你一棵树,每个点有个颜色,有两个操作。 1 询问一条路径有多少段颜色。 2 将一条路径全部染成一个颜色。 题解: 这题可以用树剖+线段树维护。 但是LCT超级好写。 要注意的就是rev那里要把左右颜色也要换一换。 1 #includ 阅读全文
posted @ 2017-10-19 20:59 bin_gege 阅读(200) 评论(0) 推荐(0) 编辑
摘要:题目链接:SPOJ - OTOCI 题意: 给你n个点,有三种操作。 1 将 x y 连接 如果已经连接了,就输出no,否则输出yes 2 将x的权值改为y 3 输出x到y的路径经过的所有点的权值。 题解: LCT的题,很裸。 1 #include<bits/stdc++.h> 2 #define 阅读全文
posted @ 2017-10-19 19:02 bin_gege 阅读(175) 评论(0) 推荐(0) 编辑
摘要:题目链接:BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 题意: 有n个节点,每个节点有个弹力系数xi,表示第i个节点可以弹到i+xi,如果超过了n就弹飞。 现在有两个操作: 1 x 询问从x开始要弹几次才能弹飞。 2 x y 将x的弹力系数更改为y。 题解: 这题可以分块可以LC 阅读全文
posted @ 2017-10-19 13:51 bin_gege 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题目链接:BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 题意: 三个操作. 1 链接x y 2 断开x y 3 询问x y是否连通 题解: LCT裸题 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 阅读全文
posted @ 2017-10-19 10:51 bin_gege 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 4010 Query on The Trees 题意: 给你一棵树,有4种操作。 1 连接x,y. 2 断开x,y. 3 将x到y这条路径加上一个值w. 4 询问x到y这条路径的最大值. 题解: LCT必做题,全是LCT操作。 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2017-10-18 22:17 bin_gege 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 6203 ping ping ping 题意: 给你一棵n+1个节点树,现在有q条路径不通,问你最少有多少个节点坏掉了。 题解: 考虑贪心,对这q条路径求一下lca,按照lca的深度从大到小排序。 然后for每条路径,看看x或者y是否在已经被禁止的子树里面,如果都不在,那么ans+ 阅读全文
posted @ 2017-10-17 21:02 bin_gege 阅读(277) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 6200 mustedge mustedge mustedge 题意: 一开始给你一个有n个节点m条无向边的图,现在定义mustedge为u->v的路径上必须经过的边。 现在有q个操作: 1 x y x->y加条无向边 2 x y 查询x->y上有多少条mustedge。 题解: 阅读全文
posted @ 2017-10-17 19:52 bin_gege 阅读(236) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 4776 Ants 题意: 给你一棵有n个节点的树,每条边有一个权值ai,现在定义两点直接的距离为路径上经过的边的异或和。 现在有m个询问,每次询问你第k长的路径是多少。 题解: 一开始我想二分+树分治+trie,发现只能做一个询问。- -!。 这里有一个优秀的做法,可以预处理出前 阅读全文
posted @ 2017-10-11 20:10 bin_gege 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 4775 Infinite Go 题意: 给你n步下黑白子棋的过程,问你最后黑棋剩多少,白棋剩多少(围棋规则) 题解: 并查集模拟一下,用并查集记录一下链以及周围空白棋子的个数。 注意棋盘边上的旗子可能被围死。 1 #include<bits/stdc++.h> 2 #define 阅读全文
posted @ 2017-10-10 20:39 bin_gege 阅读(277) 评论(0) 推荐(0) 编辑
摘要:题目链接:2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor 题意: 给你一棵有n个节点的树,然后有Q个询问,每次询问给出两个点x,y,k。将x->y路径上经过的点放进一个数组a里,将询问[0],a[k],a[2*k],a[m*k]的值异或起来的值为多少。 题解: 预处理lca和k= 阅读全文
posted @ 2017-09-22 19:15 bin_gege 阅读(295) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 5575 Discover Water Tank 题意: 有一个大水箱,里面有N-1个隔板,将这个大水箱分成了N个小水箱,每个隔板有一定的高度。 现在有m条信息,每条信息表示第x个水箱的y高度是否有水。 现在有一些信息有矛盾,问你最多可以选多少条信息出来,他们相互都不矛盾。 题解: 阅读全文
posted @ 2017-09-21 14:37 bin_gege 阅读(663) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 5517 Triple 题意: 有n个两元组A,有m个三元组B,然后set C有一个计算方式。 现在让你找set TOP的size。 题解: 理解题意后,显然对于每个b的分组,只有最大的a才有贡献, 然后就可以发现set B中每个元素按照e分组后,只会对应一个a,所以最多有1e5个 阅读全文
posted @ 2017-09-13 21:14 bin_gege 阅读(133) 评论(0) 推荐(0) 编辑
摘要:题目链接:Codeforces Round #433 (Div. 2) E. Boredom 题意: 在一个n*n的二维平面上,有n个标记,每列只有一个标记。 现在定义美丽的矩形为以两个标记所在位置构成的矩形。 现在有q个询问,每次询问一个矩形,问有多少个美丽的矩形与询问的矩形相交。 题解: 先用建 阅读全文
posted @ 2017-09-07 15:14 bin_gege 阅读(428) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 6191 Query on A Tree 题意: 给你一棵树,每个节点有一个值,现在有q个询问,每个询问 询问一个u x,问以u为根的子树中,找一个节点,使得这个节点的值与x异或的值最大,输出那个最大的值。 题解: dfs序和一棵可持久化字典树就搞定了。 1 #include<bi 阅读全文
posted @ 2017-09-01 11:41 bin_gege 阅读(165) 评论(0) 推荐(0) 编辑
摘要:题目链接:hdu 6183 Color it 题意: 在一个二维平面上有n个操作。 1. x y c 在(x,y)这点上添加一个颜色c。 2. x y1 y2 询问二维平面[1,x]~[y1,y2]上有多少不同的颜色。 题解: 由于这题在x轴每次都是询问的[1,x],所以我们开50棵线段树,对于每种 阅读全文
posted @ 2017-09-01 11:33 bin_gege 阅读(246) 评论(0) 推荐(0) 编辑
摘要:题目链接:poj 2464 Brownie Points II 题意: 题意很迷啊。 有一些点,Stan选择某个点,经过这个点画一条竖线,Ollie选择一个经过这条直接的点画了条横线。 Stan选一,三象限的点,Ollie选二、四象限的点。 Stan的策略是,自己画一条竖线之后,Ollie有很多种选 阅读全文
posted @ 2017-08-23 20:56 bin_gege 阅读(138) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示