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
BZOJ2819
bzoj2819
DFS序 + LCA + 线段树
https://www.lydsy.com/JudgeOnline/problem.php?id=2819题意:树上单点修改及区间异或和查询。思维难度不高,但是题比较硬核。整体思路是维护每一个结点到根节点的距离。查询u,v树链上的异或和就是query(v)^query(u)^a[lca(u,v)],所以就要想办法维护树上的结点到根节点的异或和。网上的题解大多是选择直接维护答案,修改的时候修改整颗子
weixin_30882895
·
2020-08-09 00:05
php
数据结构与算法
Bzoj2819
:Nim:树链剖分
题目链接:Nim线段树维护异或值的沙茶题然而dfs会爆栈所以得开手工栈(见代码)#include#include#include#includeusingnamespacestd;constintmaxn=500010;inttot=0,h[maxn],ind=0,s[maxn],fa[maxn];structedge{intto,next;}G[maxns[k]&&dep[G[i].to]>de
TheWolfWhistlingSong
·
2020-08-08 19:32
OI
树链剖分
BZOJ2819
Nim
隔壁尹神说树剖裸题太巨了先说一个~~(你M)~~nim游戏的性质就是所有堆的石子的数量Xor起来不等于0先手必胜,我也不知道咋证明于是乎我们就可以大力维护树上的Xor路径,咋维护呢?先求dfs序,转化成区间问题,然后用树状数组维护一下就好了,查询的时候,求一条x–>rt的Xor路径,再求一条y–>rt的Xor路径,Xor一下,发现lca(x,y)以上就没了,但是少了一个val[lca]所以再Xor
AcerMo
·
2018-09-14 15:58
数据结构-树状数组
倍增LCA
【BZOJ】2819:Nim-树剖&线段树&手写栈
传送门:
bzoj2819
题解题中的Nim游戏其实就是看选中的这几堆石头每堆石头数量的异或和是否为0。我们只需要维护每个点到根节点路径上的异或和就好了。
ccosi
·
2018-05-17 13:52
树链剖分
Nim
bzoj2819
Nim(dfs序+树状数组+博弈)
我们知道Nim游戏是否先手必胜只需看异或和是否为0即可。因此此题我们就是要维护路径异或和和单调修改。可以dfs序+树状数组来做,维护每个点到根的异或和。#include#include#include#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f#defineN500010inlinechargc(){staticch
Icefox_zhx
·
2018-04-09 20:18
树状数组
-----树-------
bzoj
博弈
[
bzoj2819
][树链剖分][博弈]Nim
Description著名游戏设计师vfleaking,最近迷上了Nim。普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取。谁不能取谁输。这个游戏是有必胜策略的。于是vfleaking决定写一个玩Nim游戏的平台来坑玩家。为了设计漂亮一点的初始局面,vfleaking用以下方式来找灵感:拿出很多石子,把它们聚成一堆一堆的,对每一堆编号1,2,3
Rose_max
·
2018-03-02 13:58
bzoj
树链剖分
博弈
[
bzoj2819
]Nim
Description给出一棵树,每次修改一个点的值或询问x,y之间的路径上的数组成的石子游戏先手有没有必胜方案。(普通版SG)n,m#include#include#definefo(i,a,b)for(inti=a;i=b;i--)#definerep(i,a)for(inti=last[a];i;i=next[i])#defineN500005usingnamespacestd;intn,m
alan_cty
·
2016-06-15 21:57
线段树
树状数组
博弈论
dfs序
[
BZOJ2819
]Nim(树链剖分)
题目描述传送门题解为了学手写栈刷了一道水题。线段树+树链剖分维护区间xor和代码递归#include#include#includeusingnamespacestd;constintmax_n=5e5+5;constintmax_m=max_n*2;constintmax_tree=max_n*4;intn,m,x,y,u,t,ans,q,N,a[max_n];inttot,point[max_
Clove_unique
·
2016-05-12 08:43
题解
树链剖分
[
BZOJ2819
]Nim(树链剖分)
题目描述传送门题解为了学手写栈刷了一道水题。线段树+树链剖分维护区间xor和代码递归#include #include #include usingnamespacestd; constintmax_n=5e5+5; constintmax_m=max_n*2; constintmax_tree=max_n*4; intn,m,x,y,u,t,ans,q,N,a[max_n]; inttot,
Clove_unique
·
2016-05-12 08:00
树链剖分
bzoj
手写栈
BZOJ2819
Nim 树链剖分+线段树
BFS版的树链剖分(实际上这代码是TLE的,只需要把动态内存改成静态就可以了,懒得改了就这样吧0.0)#include #include #include #include #include usingnamespacestd; constintMAXN=500000+2; structHASH{ intu; HASH*next; HASH(){} HASH(int_u,HASH*_next):
WDZRMPCBIT
·
2016-04-30 23:00
Bzoj2819
Nim
Description给定一棵n个节点的无根树,有2种操作:1、询问x到y的路径上的点权异或和2、修改某个点的点权Solution直接上树剖。#include#include#include#includeusingnamespacestd;constintmaxn=500005;constintINF=0x3f3f3f3f;#defineLLlonglongstructedge{intx,y,n
Elemmir
·
2016-04-20 21:28
树链剖分
bzoj2819
Nim
2819:NimTimeLimit: 20Sec MemoryLimit: 128MBSubmit: 1608 Solved: 601[Submit][Status][Discuss]Description著名游戏设计师vfleaking,最近迷上了Nim。普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取。谁不能取谁输。这个游戏是有必胜策略
AaronGZK
·
2016-02-05 18:00
线段树
树链剖分
bzoj
bzoj2819
Nim
http://www.lydsy.com/JudgeOnline/problem.php?id=2819题意:对一棵树单点修改和询问链上各点权作为Nim游戏的初始局面先手是否有必胜策略。n,q#include#include#include#definerpt(i,l,r)for(i=l;i=l;i--)#defineM500005usingnamespacestd;intv[M],a[M]={0
jr_mz
·
2015-12-23 14:00
【树链剖分】
bzoj2819
nim
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2819题目大意:有一棵树,每个节点上有一堆石子,有两种操作:1.改变某个节点的nim值2.问在u到v的路径上玩nim游戏是否有先手必胜策略直接链剖即可,懂点博弈论的都知道:nim游戏中异或和为0的无先手必胜策略,否则均有先手必胜策略这里注意几点:1.由于点的数目巨大所以请直接上lowbit或
FAreStorm
·
2015-12-04 20:53
题解
bzoj2819
: Nim
题意:树上的NIM游戏,每次取出一条链,问先手是否有必胜策略。思路:动态树or树链剖分维护链异或和,为0则没有,否则有。LCT死活就是TLE,代码就不贴了。
thy_asdf
·
2015-06-22 20:00
BZOJ2819
Nim(dfs序+树状数组)
【题解】题目大意:给定一棵树,有两种操作:1.修改一个节点的权值 2.查询两点之间路径上所有点的权值异或值 运用前缀的思想 首先xor运算有一个性质:Xor[l,r]=Xor[1,l]^Xor[1,r]所以,设Xor[x]为从结点x到根经过的所有结点的权值异或,则x到y路径上的点权异或值为:Xor[x]^Xor[y]^Val[LCA(x,y)]修改一个点x,会改变以它为根的子树中所有节点的Xor[
cjk_cjk
·
2015-06-17 23:00
树状数组
dfs序
xor运算
BZOJ2819
Nim DFS序+BIT+博弈论
不知道为什么这道题我没写手工栈,仅仅是普通的DFS就过了。其实就是维护一下链上的异或值就可以。对于这样的单点修改链查询,有一个很好的做法,先搞出整个序列的DFS序,然后修改的时候,记修改的节点为x,它对应子树在DFS序中左边是l,右边是r,则可以这样做:把a[l]异或原来的w[x],a[r+1]异或原来的w[x],再把这两个数异或要修改成的值,就可以了。显然可以用BIT维护,于是就诡异水掉了。这个
KuribohG
·
2014-06-07 20:00
上一页
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
其他