E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
xor-longest
POJ - 3764 The
xor-longest
Path (01字典树)
POJ-3764题意:求树上两个结点间路径的XOR值的最大值。思路:可以知道任意两个结点,设从根到这个结点的dis[u]=XOR路径和,那么u->v=dis[u]XORdis[v];因为他们的dis[lca(u,v)]会因为被XOR两次而不会对结果造成影响,所以这就成了求dis[i]中两个值的XOR最大值,可以用01字典树维护,每对一个dis[i]值,先查询再插入。#include#include
shinimashzi
·
2020-09-12 06:48
数据结构
The
xor-longest
Path
Thexor-longestPathTimeLimit:2000MSMemoryLimit:65536KTotalSubmissions:3875Accepted:850DescriptionInanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:⊕isthexoroperator.
alex151194310
·
2020-08-08 14:50
POJ - 3764The
xor-longest
Path——异或运算+Trie+树的DFS遍历
Thexor-longestPath大方面的思路:①挑取树的任一节点作为根节点,计算出从其它所有节点x到根节点的距离,记为d[x]。②那么题目中求的x到y路径上的所有权值异或起来的结果就是d[x]xord[y]d[x]\xor\d[y]d[x]xord[y]为什么呢?首先,异或运算的一条性质,axorbxora==ba\xor\b\xor\a==baxorbxora==b(异或运算的交换律和结合律
好喜欢萨摩猪
·
2020-06-26 03:06
#
前缀树
图论
树的森林
POJ3764 The
xor-longest
Path
题目大意:给定一棵树,每条边都有对应的权值,在树上找一条简单的路径,使得所有边权值的异或值最大。分析:这个类似于前边写过的一个数组选定两个数的最大异或值,先dfs预处理一下从1到i的异或值D[i],然后当你想要取到s到e的异或值就是D[s]^D[e]。接下来就相当于之前写过的两个数的最大异或值问题。求解最大异或值问题就是利用字典树,就可以高效的解决。代码:#include#include#incl
SwiftAC
·
2020-01-05 17:00
POJ 3764 The
xor-longest
Path
传送门题目大意:给定一棵n个点的带权树,求树上最长的异或和路径。对于树上从x到y的路径的异或和,表示为D(x,y)D(x,y)D(x,y),则有:D(x,y)=D(1,x)⊕D(1,y)D(x,y)=D(1,x)\oplusD(1,y)D(x,y)=D(1,x)⊕D(1,y)而所有的D(1,i)D(1,i)D(1,i)是可以O(n)O(n)O(n)求出的。问题转化为在N-1个数中找出两个数,使他们
Dawn_LLLLLLL
·
2019-01-26 10:14
Trie树
POJ 3764 The
xor-longest
Path
传送门题目大意:给定一棵n个点的带权树,求树上最长的异或和路径。对于树上从x到y的路径的异或和,表示为D(x,y)D(x,y)D(x,y),则有:D(x,y)=D(1,x)⊕D(1,y)D(x,y)=D(1,x)\oplusD(1,y)D(x,y)=D(1,x)⊕D(1,y)而所有的D(1,i)D(1,i)D(1,i)是可以O(n)O(n)O(n)求出的。问题转化为在N-1个数中找出两个数,使他们
Dawn_LLLLLLL
·
2019-01-26 10:14
Trie树
poj3764 The
xor-longest
Path
题目链接题目大意:一棵树上每条边有个值,求在树中找一条路径使得路径上的边的权值的抑或和最大。 分析:A^A^B=B;对于每个点,我们先求出它到根节点的抑或和,然后插入到01字典树中去,并且把这些值存到容器中,因为每个值都对应图中的一个节点。 最后在枚举就好了。 constintmaxn=1e5+10; inthead[maxn],nxt[maxn=0;--i){ intid=(value>>i)&
KIJamesQi
·
2016-05-22 15:00
tire
抑或的基本常识
POJ3764 The
xor-longest
Path
题意:给定一颗n(1 #include #include usingnamespacestd; constintN=100005; intn,x,y,z,e,sz,ans,hd[N],nxt[N],to[N],w[N],num[N],ch[3100005][2]; voidadd(intx,inty,intz){ to[++e]=y,w[e]=z,nxt[e]=hd[x],hd[x]=e; }
Monster__Yi
·
2016-04-21 21:00
Trie树
贪心
异或和
[POJ 3764] The
xor-longest
Path (Tire树 + 贪心)
POJ-3674题意是给你一个树,每条边有一个权值,求得树上一条路径,使路径上每条边权值的异或和最大首先用一个DFS把根到任意点的路径的异或和求出来xorv[i]由异或的性质可得点u和点v的异或和即为xorv[u]^xorv[v](根到两点LCA的异或和会消去)然后问题就转化成在区间内找两个值,使得他们的异或和最大与LightOJ-1269一样的做法,用trie树维护一下,贪心找最大就好http:
u012015746
·
2016-04-07 20:00
poj
[BZOJ1954]Pku3764 The
xor-longest
Path
Pku3764Thexor-longestPathDescription给定一棵n个点的带权树,求树上最长的异或和路径InputTheinputcontainsseveraltestcases.Thefirstlineofeachtestcasecontainsanintegern(12->3,whichhaslength7(=3⊕4)注意:结点下标从1开始到N….Solution首先我们遇到的一
hbhcy98
·
2016-04-02 22:00
trie
【Poj 3764】The
xor-longest
Path 字典序+贪心
Thexor-longestPathTimeLimit:2000MSMemoryLimit:65536KTotalSubmissions:5242Accepted:1140DescriptionInanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:{xor}length(p)=\o
ALPS233
·
2016-02-15 16:00
poj
字典序
【POJ 3764】The
xor-longest
Path 中文题意&题解&代码(C++)
Thexor-longestPathDescriptionInanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:⊕isthexoroperator.Wesayapaththexor-longestpathifithasthelargestxor-length.Givenanedge
DERITt
·
2016-02-09 02:00
异或
树
poj
字典树
【POJ 3764】The
xor-longest
Path 中文题意&题解&代码(C++)
Thexor-longestPathDescriptionInanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:⊕isthexoroperator.Wesayapaththexor-longestpathifithasthelargestxor-length.Givenanedge
DERITt
·
2016-02-09 02:00
异或
树
poj
字典树
POJ3764 The
xor-longest
Path(Trie树)
题目给一棵有边权的树,问树上任意两点路径上的边异或值最多是多少。记录每个点u到根路径的异或值xor[u],那么任意两点u、v路径的异或值就是xor[u]^xor[v]。于是这个问题就变成了从n个数中任取两个数异或,求最大异或值,这是个经典的问题,用字典树解决。方法就是所有数的二进制形式构建成一棵01字典树,枚举每个数从字典树中就能找到对应的最大的答案。1#include 2#include 3
WABoss
·
2016-01-30 16:00
POJ3764 The
xor-longest
path Trie树
代码写了不到30分钟,改它用了几个小时。先说题意,给你一颗树,边上有权,两点间的路径上的路径的边权抑或起来就是路径的xor值,要求的是最大的这样的路径是多少。讲到树上的两点的xor,一个常用的手段就是随便选一个根,然后深搜记下每个点v到根的xor路径 w[v],那么两点x,y路径的xor就是w[x]^w[y]. 深搜一发,问题转化为给你一个数组a,求a中哪两个数的抑或值最大。解决该问题的方法就是
·
2015-11-12 22:39
Path
POJ 3764 The
xor-longest
Path
建立字典树,树的结点记录根结点到该结点的连续异或值。 由(a ^ c) ^ (b ^ c) == a ^ b 可得任意两结点的异或值,等于两结点之间这条路的连续异 或值。由此把每个结点的值插入01字典树,从二进制31位~0位,并查找,尽可能的向 每一位的不同方向查找(这样异或这一位能
·
2015-11-12 22:09
Path
POJ3764 The
xor-longest
Path
这是道感觉很不错的题。武森09年的论文中有道题CowXor,求的是线性结构上的,连续序列的异或最大值,用的办法是先预处理出前n项的异或值,然后在这些值中找出两个值的异或值最大。是基于这样的一个原理,相同段的异或值为0。而这道题把它扩展到树上,这也提示了我们,在思考问题的时候,可以把它退化一维去考虑,即从一般到特殊,出题的时候把它升一维。当时比赛的时候,对这道题都不敢去思考,去分析。因此要习惯分析难
·
2015-11-11 03:59
Path
POJ 3764 The
xor-longest
Path ( 字典树应用—— 求连续段相异或最大最小的线性算法)(好题)
题意:已知:给出n个结点的树,定义:两结点间的权值为两点之间所有边相异或的值.求:树中的某两点间的最大权值.思路:先说简单一点的题:有道CowXor,是一串线性序列,求某连续段异或的最大值,这题的思路是先求前i项序列相异或的值Si,所以x到y的连续异或就是Sx^Sy,因为a^b=(a^c)^(b^c).这题同样是这个思路把线性拓展到树上,先求任何点到某一定点的连续异或值,比如选根结点0,所以这时候
kalilili
·
2015-03-01 11:00
【POJ3764】The
xor-longest
Path Trie树+异或性质
#include intmain() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/43486733"); }题意:多组数据、给你一颗树,然后求一条最长异或路径,异或路径长度定义为两点间简单路径上所有边权的异或和。题解:首先无根树转有根树再在树上跑一遍算出每个点到根的异或和。然后两点间异或路
Vmurder
·
2015-02-04 15:00
Path
Trie树
the
xor-longest
异或性质
POJ3764
【BZOJ】【P1954】【Pku3764 The
xor-longest
Path】【题解】【Trie】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1954水题……3min写完1A……Code:#include usingnamespacestd; constintmaxn=1e5+5; structedge{intu,v,w;}; vectorG[maxn]; intn,m,a[maxn]; voiddfs(intu,intfa){ fo
u012732945
·
2014-12-15 17:00
bzoj
poj 3764 The
xor-longest
Path(字典树)
题目链接:poj3764Thexor-longestPath题目大意:给定一棵树,每条边上有一个权值,找出一条路径,使得路径上权值的亦或和最大。解题思路:dfs一遍,预处理出每个节点到根节点路径的亦或和rec,那么任意路径均可以表示rec[a]^rec[b],所以问题就转换成在一些数中选出两个数亦或和最大,那么就建立字典树查询即可。#include #include #include using
u011328934
·
2014-10-30 22:00
poj 3764 The
xor-longest
Path 字典树 + Xor
poj3764Thexor-longestPath字典树+Xor 这题意思很简单。求一棵树里面的一条路径,使得其异或权(就是将路径里面所有边的权值异或起来)最大。 这个题有两步。第一步是假定根为节点0,求出根到其它节点的异或距离,保存在数组xor里面,这个dfs一下即可。然后,用xor[i]^xor[j]就能代表节点i到节点j的路径。这个结论可以这么看。如果,i和j之间的路径经过根节点,那么上
yx
·
2012-10-12 20:00
Poj 3764 The
xor-longest
Path (字符串_字典树)
题目链接:http://poj.org/problem?id=3764题目大意:给定棵树,两节点间有权值,求一条路径,边上的权值异或值最大,并输出这个最大的异或值。解题思路:挺好的一题,做完后对字典树和异或运算的理解变得更加清晰,a^b=(a^c)^(b^c),根据树上两节点到根的路径可得两节点间的路径,这在树形题中经常用到。 本题需要静态数组建树,因为节点数最多有300万,动态开辟空间或者用v
woshi250hua
·
2012-05-19 01:00
c
vector
struct
测试
null
Path
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他