![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM——数据结构
文章平均质量分 66
data structure
一只酷酷光儿( CoolGuang)
桃李不言 下自成蹊
展开
-
【upc】Tournament Chart | 栈的模拟
问题 B: Tournament Chart时间限制:1 Sec内存限制:128 MB提交:206解决:52[提交] [状态] [命题人:admin]题目描述In 21XX, an annual programming contest, Japan Algorithmist GrandPrix (JAG) has become one of the most pop...原创 2019-08-20 18:12:59 · 215 阅读 · 0 评论 -
【数据结构实验】 中缀表达式求值(可带括号)
输入一个含括号的加减乘除表达式,输出该表达式的值:思路:输入表达式,注意(可能带有括号),运用两个栈,符号栈和数字栈,首先判断优先级,把所有符号的优先级打表,进行运算,入栈时模仿单调栈,如果当前 优先级比栈顶元素优先级小,说明当前元素需要赶快计算,不然会影响以后的结果。例如2*3-2,‘-’进来的时候,优先级比’*’小,所以先把*运算运行完,运行完之后再把减号放进来。如果遇到优先级相等的...原创 2019-09-25 12:07:53 · 1424 阅读 · 2 评论 -
【Codeforces 1312E】Array Shrinking | 区间dp
题目链接:https://codeforces.ml/contest/1312/problem/E题目大意:给出一段序列,有一种操作可以将任意两个相同的数字合并为一个,最序列最后最少剩多少个数字?题目思路:下面介绍两种解法,O(n^2)与O(n^3)part_1:考虑用dp[i][k]表示最后的答案,那么即有:这个转换是通用的,但是怎么表示合并呢?考虑到如果区间[i,k]可以合并的话,那最后必然是一个数字,无论有几种合并方法,最后一个数字必然会相同,所以增加一个w[i].原创 2020-06-25 11:20:24 · 464 阅读 · 0 评论 -
2019CCPC江西省赛 wave 序列自动机+暴力搜索
Avin is studying series. A series is called "wave" if the following conditions are satisfied:1) It contains at least two elements;2) All elements at odd positions are the same;3) All elements at ev...原创 2019-07-25 21:31:41 · 272 阅读 · 0 评论 -
Isomorphic Inversion 哈希+模拟
题目描述Let s be a given string of up to 106digits. Find the maximal k for which it is possible to partition s into k consecutive contiguous substrings, such that the k parts form a palindrome.More pr...原创 2019-08-28 17:38:56 · 277 阅读 · 0 评论 -
【知识总结】关于笛卡尔树
笛卡尔树:在范围最值查询、范围top k查询等问题上有广泛应用。它具有堆的有序性,中序遍历可以输出原数列。一、定义与性质首先先明确,笛卡尔树的构建是根据两个键值来的,第一个是他的if顺序,另一个是他维护的权值(最大或者最小),满足每个节点的根都是两边区间的最小值(性质),比如说 序列 :3 1 5 4 2 它的笛卡尔树就是这样的:首先,可以看出它满足 id从左到右的顺序,其次每个根...原创 2019-07-31 22:40:29 · 2537 阅读 · 4 评论 -
【Codeforces1404B】Tree tag | 树上追击、博弈、树的直径
题目链接:https://codeforces.com/contest/1404/problem/B题目大意:Aiice和Bob在一棵树上,初始Alice在a点 , Bob在b点,Alice可以一次走da步,Bob可以一次走db步,Alices先走,询问Alices是否能追上Bob题目思路:首先很明确的一点:如果从Alices为根的树,Bob的深度小于等于da那么Alice必赢其次考虑如果da*2 >= mx(树的直径),那么就表明Alice走完第一步之后就可以到达任何点,所以原创 2020-10-24 21:56:22 · 402 阅读 · 0 评论 -
【知识总结】浅谈关于树的重心及其求法
一.树的重心定义 树的重心:找到一个点,其所有的子树中最大的子树节点数最少.二.树的重心性质树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。 一棵树最多有两个重心,且相邻。 三.如何求树的重心...原创 2019-08-07 15:19:58 · 4282 阅读 · 0 评论 -
NOI 2019 多校联合 世界树的考验 | 树上差分、状压DP
世界树的考验题目大意:终于,历经千难万险后,路明非来到了世界树下,探寻自己的身世之谜,但世界树却给他出了一道难题。世界树是一个有n(n<=100000)个节点n-1条边组成的无向连通图,树上的每条边都有一个边权,路明非每次可以选中世界树上任意两个点,将其路径上...原创 2020-01-11 22:18:35 · 275 阅读 · 0 评论 -
【CCPC】2020CCPC秦皇岛 K. Kingdom‘s Power | 树上贪心
题目链接:https://codeforces.com/gym/102769/problem/K题目大意:抽象一下:从根节点出发有无数个机器人,假设机器人从u->v那么u->v路径中所有的点都会被覆盖问最少移动几步可以将所有的点全部覆盖题目思路:可以考虑每个叶子节点的贡献(这个非常容易想到)叶子节点覆盖之后所有点必然会全部覆盖所以考虑每个叶子节点的状态:1.从根节点直接到达该节点u2.从上一个节点转移过来分析状态2从上一个节点转移过来,其实并不太.原创 2020-10-30 14:50:17 · 596 阅读 · 0 评论 -
【upc】城镇 | 并查集、附树的直径详细证明
题目描述L国一共有N座城镇,开始时它们两两不连通。L国计划依次建造N-1条道路,把所有城镇连通起来。每建完一条道路,你需要回答这条道路所在连通块内距离最远的两座城镇之间的距离。两座城镇之间的距离定义为从一座走到另一座所需要经过的最少道路数。输入第一行一个整数N,表示城镇的数量。接下来N-1行,每行两个整数ai,bi表示接下来建的道路连通的两座城镇。保证N-1条道路能够使所有城镇连通。输出输出N-1行,每行一个整数表示建完第i条道路后的答案。样例输入Copy53 5..原创 2020-08-19 19:35:51 · 1084 阅读 · 2 评论 -
【Nowcoder】2019牛客多校第四场 A meeting | 树的直径
链接:https://ac.nowcoder.com/acm/contest/884/A来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述A new city has just been built. There'rennninteresting places...原创 2019-07-29 01:00:08 · 338 阅读 · 0 评论 -
【Nowcoder】MMset | 树的点集直径(LCA)
链接:https://ac.nowcoder.com/acm/problem/14250来源:牛客网时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述给定一棵n个节点的树,点编号为1…n。Q次询问,每次询问给定一个点集S,令,你需要求出。其中dist(u,v)表示树...原创 2020-03-08 16:38:30 · 426 阅读 · 0 评论 -
【Nowcoder】Alliances | LCA、DFS序
题意简化: 首先给出一棵树,其次询问一个点集,求包含这个点集的最小生成树与询问点x的最短距离题目思路 首先考虑,如何确定这个点集的最小生成树:首先跑一个LCA,找出所有点公共的LCA,那么这个最小生成树的点集根节点(也就可以确定了)之后就可以考虑这两种情况: 1.如果询问点,不在这个子树内:即绿色为询问点,由红色点生成的生成树可知,是图中三角形的点,显然绿色点不在红色点两点的祖先子树中,由于树上两点路径唯一,那么绿色点要想通过子树的点,就必须经过这个祖先,所以此时...原创 2020-07-09 01:20:15 · 506 阅读 · 0 评论 -
【upc】小Y的图 | 树上倍增、最小生成树
问题 B: 小Y的图时间限制:1Sec内存限制:256 MB提交状态题目描述小Y有一个n个点的无向图,图中的每个点从1到n标号。图中还有m条边,每条边有一个长度。小Y有Q个询问,每次询问两个点所有路径中,最长的边最小值是多少,若这两个点之间没有任何路径,输出 -1。输入第一行三个整数n、m和Q。接下来m行每行三个整数x、y、z(1≤x,y≤n,1≤z≤1000000),表示有一条连接x和y长度为z的边。接下来Q行每行两个整数x、y(x≤y),表示一组询问。...原创 2020-07-24 17:22:06 · 1018 阅读 · 2 评论 -
洛谷P2495 [SDOI2011]消耗战 | 一个典型的可以搞懂虚树的例题
题目链接题目大意:给出一棵树,之后对这棵树进行q次询问,每次询问一个点集,给出使得这些点集中的点都不能直接或者间接的与1相连,需要删边的最小代价(边的代价在给树的时候给出),,点集不包含1,点集总共大小<=500000题目思路:首先考虑如果没有m次询问的结果考虑树形dp对于一个点来说:1.如果其是询问点,那么此点必定会删除,所以这个点的贡献必然是1~u之间的边权最小值2.如果不是询问点,那么对于这个点来说,可以全部删除其子树的点 同时也可以找一个 该点到1的边权最小值,原创 2020-07-07 15:39:47 · 343 阅读 · 0 评论 -
【Codeforces 932D】 Tree | 树上倍增
题目链接:https://codeforces.com/contest/932/problem/D题目大意:起初是一个点,对于这个点要进行q次操作1操作:1 x y 新增一个节点,它的父节点x,它的权值是num[y]2操作:2 x y 询问以x开头的,满足所有点在x到根节点的路径上,并且权值单调不减,并且总权值小于等于x的最长路径长度题目思路:这个题类似:原题首先可以确定是一个树,因为每个节点只有一个父亲节点所以可以在树上进行倍增维护这个信息f[i][j] 代表 i 到原创 2020-12-02 14:23:09 · 257 阅读 · 0 评论 -
【Nowcoder】城市网络 | 树上倍增
链接:https://ac.nowcoder.com/acm/problem/13331来源:牛客网城市网络时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述有一个树状的城市网络(即 n 个城市由 n-1 条道路连接的连通图),首都为 1 号城市,每个城市售卖价值为 a_i 的珠宝。你是一个珠宝商,现在安排有 q 次行程,每次行程为从 u 号城市前往 v 号城市(走最短路径),保证.原创 2020-06-10 18:22:04 · 460 阅读 · 0 评论 -
【upc】树统计 | 虚树、边权统计
问题 E: 树统计时间限制:1Sec内存限制:128 MB提交状态题目描述骗分过样例,暴力出奇迹。关于树的算法有一大堆,样样都是毒瘤。比如说 NOIP2018 提高组的 D2T3,如果会动态 DP 的做法那么就马上想到正解,但是 Tweetuzki 不会动态 DP,就只好骗分了。可惜树题的码量也是超级大的。听说好多学长都会动态 DP,但是考场上调不出来,只好暴力分收场了。疯狂暗示Tweetuzki 当时暴力写挂了,有 4 个点写成了死循环……于是分数白白少了 16 分。Twe...原创 2020-07-07 17:38:18 · 369 阅读 · 0 评论 -
【Codeforces 1175E】Minimal Segment Cover | 一个经典倍增问题
题目链接:https://codeforces.ml/contest/1175/problem/E题目大意:给出n个区间,每次询问区间[x,y]最少需要多少个区间覆盖(必须连续即[1,3],[4,5]覆盖不了[1,5] 因为[3,4]未完全覆盖)如果不可覆盖则输出-1题目思路:这种区间询问问题,又无法使用数据结构时,考虑倍增解法倍增也是基于贪心的思路之上若用f[i][k]表示i开始用1<<k个区间能够覆盖到的最远点那么就满足题意中的最少了。如果确定由i开始原创 2020-06-11 12:55:20 · 334 阅读 · 0 评论 -
Atcoder USACO 2019 December Contest C Milk Visit LCA变式
Milk Visits题目大意:有n个农场,这些农场由n-1条边相连【构成一棵树】,每个节点都会有一个权值 G或H,M次询问,每次输入x,y,ch,输出从x到y过程中能否遇见权值为ch的农场题目思路:没做过多少LCA的应用,至于这个题也没有看出来,其实LCA的作用在于求树上两点的距离,可以运用LCA求出树上两点最近路径的权值之和。所以这个题考察的就是LCA求两点路径权值之...原创 2020-01-15 17:56:05 · 726 阅读 · 0 评论 -
【Codeforces 1437G】Death DBMS | AC自动机fail树上树链剖分
题目连接:https://codeforces.com/contest/1437/problem/G题目大意:首先给出一个数据库,数据库中包含n个字符串接下来支持两个操作:1.将第i个字符串的权值改为w2.询问字符串q中,包含的所有在数据库中的字符串中的最大权值(起初取值为0),如果没有包含数据库中的字符串输出-1题目思路:一个很明显的思路:用AC自动机将fail树建立起来有了fail树之后,对于询问串的每一个位置,从第一次能匹配到的位置开始到根节点的最大值,就是以该位置原创 2020-11-05 18:50:44 · 264 阅读 · 0 评论 -
【HDU5293】Tree chain problem | 树形dp、LCA、树剖
题目大意:给出一棵树,这棵树上分布着m条链,每条链都有一个权值,询问在保证选的链互不相交的情况下,最大的权值是多少题目思路:en ..卡了一晚上,卡到了lca,吐啦首先将这m条链的lca求出来,把每条链的两个端点放到lca里面。之后就可以进行树形dp了令dp[i]表示,以i为根的子树选出不重复链的最大权值那么对于一个根节点u,选择经过u的链,和不经过u的链两种选择:如果不选择经过u的链:那么对于子树无限制,所以sum += dp[e] //e是u的孩子如果选择经过u的原创 2020-12-13 13:10:44 · 247 阅读 · 0 评论 -
【Codeforces 1392C】 Omkar and Waterslide | 思维、差分
题目链接:https://codeforces.ml/contest/1392/problem/C题目大意:给出一个长度为N的序列a,每次可以选择一段连续的单调不减的区间,使得这个区间的数都+1问最少操作几次可以使得这个序列单调不减。题目思路:一般的思维题首先可以确定的是,最终序列的首相即为a[1]因为考虑最优答案,所以不会让序列代价变得更大所以考虑从a[1] 开始的一个连续递增子序列即为最后的序列去重之后的结果所以说用单调栈即可维护或者什么东西都可以然后就可以知道每原创 2020-08-18 16:12:19 · 329 阅读 · 0 评论 -
【upc】 跳方格 (lattice) | 差分、思维、dp
!!!问题 G: 跳方格 (lattice)时间限制:1Sec内存限制:128 MB提交状态题目描述有一个长长的走廊,巨神 ctt 把它分成m方格,从左到右编号为1,2,...,m。有一天,巨神 ctt 得到了n个蹦床,他把这些蹦床放在方格里,他在编号为1的方格里放了一个蹦床,在编号为2,3,...,m-1的方格中放置了n-1个蹦床(一个方格只能放一个蹦床)。巨神 ctt 估算了自己的跳远水平和蹦床的弹性,知道了他从第i个蹦床跳跃最多可以跳过li个方格(若这个蹦床放置的方格编...原创 2020-08-07 17:51:24 · 454 阅读 · 0 评论 -
【Codeforces 1420D】 Rescue Nibel! | 扫描线 、 组合数学
题目链接:https://codeforces.ml/problemset/problem/1420/D题目大意:给出N条线段[li,ri]问有多少种方法可以使得选择k个线段之后,这k个线段有公共交点题目思路:首先考虑组合数公式:为了防止重复,我们可以表示如果当前的方案数有如果新来一个线段,那么就有所以每次新来一个元素,相当于增加了所以直接扫描线,对于线段个数不变或者减少不计贡献只统计新来线段的贡献即可Code:/*** keep hungry and原创 2020-10-01 14:12:48 · 293 阅读 · 0 评论 -
【upc】扶桑号战列舰 | 笛卡尔树 、 差分数组
题目描述众所周知,一战过后,在世界列强建造超无畏级战列舰的竞争之中,旧日本海军根据“个舰优越主义”,建造了扶桑级战列舰,完工时为当时世界上武装最为强大的舰只。同时,扶桑号战列舰也是舰岛最为科幻的战列舰。当然,要建造这样的舰船,科技水平是必须的。同样众所周知的是,德意志科学技术天下第一,所以IJN的司令官从德国学来了一种先进的建船方法。一只战舰横过来可以看做一个长度为n的序列,每个位置有...原创 2019-07-31 22:56:49 · 298 阅读 · 0 评论 -
2019ICPC上海网络赛 B. Light bulbs | 思维、差分
题目链接题目大意:有n个灯,m次操作,每次修改[l,r]内的灯,(off - on ,on - off),问最后有几盏灯亮着.题目思路:因为外层有个T,并且n太大,并且卡内存!!!我们只能对m下手,注意到:把每一个端点存起来之后(并且排序),毎两个点之间的区间的 亮与否至于左边有关,不包括右边.所以利用差分的思想,修改 L,R相当于a(L)+1,a(R+1)-1我们把端...原创 2019-09-15 17:03:57 · 482 阅读 · 0 评论 -
【Codeforces 483D】Interesting Array | 扫描线、前缀和
题目连接:https://codeforces.com/contest/483/problem/D题目大意:给出一个长度N给出M个限制,M个(li,ri,x),代表[li,ri]相与之后的结果是x题目思路:一眼看出是个扫描线的题可以用扫描线确定出当前位置的第k位是否必须是1这样正向扫描一遍之后,求一个前缀和就可以确定当前i个第k位置 必须要为1的数量扫描线的过程中,怎么判断可行呢?只需要处理刚刚的前缀和就好了如果当前位为0,那么他所在的区间内要存在一个可以不为0的位置原创 2020-10-23 17:32:44 · 197 阅读 · 0 评论 -
【Codeforces 220B】 Little Elephant and Array | 扫描线、树状数组
感谢宇巨抛过来的题题目大意:给出一个长度为n的序列,进行m次询问。每次询问区间[l,r][l,r][l,r]内,有多少个数字xxx刚好出现了xxx次。题目思路:类比维护区间内出现了多少种数字用扫描线+树状数组的去考虑枚举右端点rrr,维护左端点lll,设法将sum(l,r)sum(l,r)sum(l,r)表示为区间内的合法数字个数所以以区间[2,2,2,2][2,2,2,2][2,2,2,2]为例:1.r=1r = 1r=1,左端点的贡献分别为:[0,0,0,0][0,0,0,0][.原创 2021-03-04 14:45:26 · 350 阅读 · 4 评论 -
【Codeforces 1430E】String Reversal | 逆序对、树状数组、思维
题目链接:https://codeforces.com/contest/665/problem/D题目大意:给出一个字符串s,将字符串s倒置后形成字符串t每次可以对字符串s进行操作,每次可以交换相邻的两个字符询问最少交换多少次可以使得s->t题目思路:备战CCPC刷题的时候的遗留问题首先将字符串s倒置之后形成字符串t交换操作首先考虑逆序对:将一段序列进行冒泡排序,进行相邻交换,最后的交换次数最少为:逆序对总和那么可以这么考虑这个题:令最终状态 t 的每个位置成为最后的有序序列a原创 2020-12-24 15:56:40 · 309 阅读 · 3 评论 -
AtCoder Beginner Contest 186F Rook on Grid | 扫描线、树状数组
本来ak完这场atcoder想写个全部题解,但是前面的题实在没意思..就只写一下这个题吧.题目大意:现在有一个n*m的矩阵,在(1,1)位置机器人,它每次可以向右移动任意格或者向下移动任意格(在没有障碍物的情况下)。现在给出k个障碍物,询问有多少点机器人可以通过最多移动两次到达题目思路:题意明确以后,自然会快就会出现一个思路:对于每一个点只有两个状态:1.先向上移动到第一行,之后向左移动到第一列2.先向左移动到第一列,之后向上移动到第一行由于n和m的范围太大,所以原创 2020-12-21 15:59:33 · 326 阅读 · 0 评论 -
【Codeforces 1076E】Vasya and a Tree 树状数组 思维
链接:https://codeforces.ml/contest/1076/problem/E题目大意:给定一棵树,以1为根节点,接下来进行m次操作,每次操作x,y,z:使x的子树中距离x节点小于等于y的点权值+z输出m次操作以后每个点的权值题目思路:首先考虑无修改操作,可能为离线。思路就稍微往离线上靠一下所以首先把对x节点的操作储存起来考虑到该树的根确定,也就是说当操作x节点时,可被操作的点满足的要求即为(令dis代表该点在树中的深度):1.dis[k] <= d原创 2020-05-25 22:36:19 · 346 阅读 · 0 评论 -
2020牛客寒假训练营4 H 坐火车 树状数组维护乘积
好叭,这个题目的思路实在是太妙了,我不得不要写博客了。题目大意:上传图片不成功,去原OJ看叭:H坐火车题目思路:题目要求,每个点的左右颜色相同对数有多少对,而且这颜色对数在询问的区间范围内。首先我们考虑对于每一个点,在区间[li,ri]内的所有的颜色对数应该为:pre[k]*cur[k] (li<=k<=ri)也就是左边颜色k的数量*右边颜色k的数量=颜色...原创 2020-02-12 15:47:16 · 298 阅读 · 0 评论 -
【Codeforces 301D】Yaroslav and Divisors | 树状数组、顺序统计
题目链接:https://codeforces.com/contest/301/problem/D题目大意:给出一个n的全排列,m次询问,每次询问区间[x,y]内,有多少对(a,b)满足a%b == 0题目思路:首先可以确定的是,a%b == 0满足因子关系因为n为全排列,所以可以通过筛法把 因子关系都确定之后假设 x在i位置,x的倍数在k位置可以把[i,k]看为一个合法区间所以题目变成了 询问在一个区间内,完全包含多少个合法区间就有了顺序统计的思想枚举右端点,利用记原创 2020-07-30 18:22:30 · 310 阅读 · 0 评论 -
【Nowcoder】2020牛客暑期多校训练营(第五场)B-graph | 最小异或生成树
题目链接:https://ac.nowcoder.com/acm/contest/5670/B题目大意:给你一棵树,你可以删除一些边或者增加一些边,但是在过程中必须保证图联通并且出现的任何一个环的异或和为0题目思路:考虑加边成为完全图那么 如何做到加边过程中 做到出现的环为0呢?考虑从任意一个根出发,到达u的异或和为x,到达v的异或和为y那么 u 与 v之间的异或和即为 x^y所以说只需要在u与v之间增加权值为x^y的边这样就可以保证上述两个条件并且成为完全图之后就可原创 2020-07-28 22:03:55 · 424 阅读 · 1 评论 -
【upc】自动完成 APP 字典树+DFS序优化
[提交] [状态] [命题人:admin]题目描述奶牛 Bessie 很喜欢用手机上网聊天,但她的蹄子太大,经常会按到好几个键造成不必要的麻烦(丢死人了,你下辈子还是不要当奶牛了)。于是 Farmer John 给她专门设计了一套「自动完成 APP」。这个 APP 能够连接到在线词典来获取词库(词库的来源是 Bessie 常用的 n 个单词),并且有着自动补全的功能。当 Bessie...原创 2019-07-31 23:25:12 · 322 阅读 · 2 评论 -
【LDUOJ】2019老生专项训练2 J - 新单词接龙 | 字典树、剪枝
推了一晚上,写题的时候万分激动,终于过了 —— 功夫不负有心人题目大意:给定一个包含nnn个单词的字典,从中选择若干个单词,按字典序进行单词接龙,使得接龙的长度最大。新单词接龙的规则:单词变换:单词wiw_iwi 添加一个字母,删除一个字母,或修改一个字母可以得到单词wi+1w_{i+1}wi+1。字典序接龙:w1,w2,…,wnw_1,w_2,…,w_nw1,w2,…,wn, 满足字典序逐渐增大题目思路:读完题目觉得nnn很小,所以就把暴力写了一遍,稳稳的TTT掉了暴力的.原创 2021-01-14 01:32:52 · 219 阅读 · 0 评论 -
【Codeforces 1447E】Xor Tree | 01字典树、分治
题目链接:https://codeforces.ml/contest/1447/problem/E题目大意:给出一段序列NNN,aia_iai会向aja_jaj连接一条边,当且仅当aja_jaj与aia_iai异或的值最小,求出最少删除多少个数使得得到图是一棵树。Note:i−j,j−iNote:i-j,j-iNote:i−j,j−i看成一条边题目思路:这题来源于1447D最后的目标是:使得只有一对点,满足iii连接jjj,并且jjj连接iii。那么画出字典树观察,满足相互连接的点.原创 2021-03-11 14:13:10 · 225 阅读 · 2 评论 -
【Codeforces 888G】Xor-MST | 最小异或生成树、字典树、分治
题目大意:给出n个点的权值,让你求出最小异或生成树:若连接 x,y,则这条边的权值为a[x] ^a[y]题目思路:会这个题首先要会一个01字典树的经典题目:1.询问x与一组数异或中的最大或者最小值2.如果不会这个需要先去学一下这个内容有了此基础之后,便可以在字典树上贪心的进行操作首先考虑一组数在字典树中的表示:现在如果要为4匹配一条边,由图中可以看出绝对是5为6匹配一条边,由图中可以看出绝对是4为什么呢?首先按照字典树贪心的顺序,从高位到底位进行建树.原创 2020-07-28 22:01:12 · 951 阅读 · 0 评论