BZOJ3729: Gty的游戏(伪ETT)】的更多相关文章

题意: 给定一棵有根树,每个节点有一些石子,每次可以将不多于k的石子移动到父节点 修改一个点的石子数,插入一个点,询问某棵子树是否先手必胜 显然是一个阶梯Nim 每次最多取k个,找规律或者观察式子易发现就是$mod (k+1)$后的Nim 问题变为: 修改点权,插入点,询问某棵子树内某一深度的点权异或和 于是放大招了:伪$ETT$ 真正的ETT貌似维护的是边,欧拉遍历序列也是边组成的序列 但我们用Splay来维护欧拉遍历的点的序列,入栈出栈时都加入队列,+1,-1,好像也叫括号序列 $build…
[BZOJ3729]Gty的游戏 试题描述 某一天gty在与他的妹子玩游戏.妹子提出一个游戏,给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问将某个节点的子树中的石子移动到这个节点先手是否有必胜策略.gty很快计算出了策略.但gty的妹子十分机智,她决定修改某个节点的石子或加入某个新节点.gty不忍心打击妹子,所以他将这个问题交给了你.另外由于gty十分绅士,所以他将先手让给了妹子. 输入 第一行两个数字,n和L,n<=5*10^4,L<=10^9第二行n个数字,…
题面 传送门 前置芝士 巴什博奕 \(Nim\)游戏的改版,我们现在每次最多只能取走\(k\)个石子,那么\(SG\)函数很容易写出来 \[SG(x)=mex_{i=1}^{\min(x,k)}SG(x-i)\] 有\(SG(0)=0\),用归纳法易知\(SG(x)=x\bmod (k+1)\) 阶梯博弈 有\(n\)级台阶,从\(0\)级开始数到\(n\)级.每级上都有一定的石子.每次可以把一个阶梯的石子往下移,\(0\)级阶梯的不能移,不能操作者输. 这里有一个结论,我们只需要考虑所有奇数层…
块状树,每个块的根记录一下当前块内距块根为奇数距离的异或和和偶数距离的异或和,询问的时候讨论一下即可. 总的节点数可能超过50000. #include<cstdio> #include<cmath> using namespace std; #define N 100001 int n,m,L,a[N]; int en,v[N<<1],next[N<<1],first[N]; int e2,v2[N<<1],nex2[N<<1],f…
3786: 星系探索 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 1638  Solved: 506[Submit][Status][Discuss] Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球没有依赖星球. 我们定义依赖关系如下:若星球a的依赖星球是b,则有星球a依赖星球b.此外,依赖关…
伪ETT? 貌似就是Splay维护dfn = = 我们首先观察这个博弈 这个博弈直接%(l+1)应该还是很显然的 因为先手怎么操作后手一定能保证操作总数取到(l+1) 于是就变成阶梯Nim了 因为对于先手从深度奇数点挪到深度偶数点后手接着可以把它挪回深度偶数点 所以就是典型的阶梯Nim 我们可以发现 只需要维护子树到一个点深度差为奇数的点的异或和就可以了 这个操作显然可以对整棵树按深度黑白染色 分别维护奇数层&偶数层即可(我这里用的是总和和奇数和 对于添加一个点那么我们直接把它挂到父亲后面就可以…
传送门 数据,标程 题意: 一颗有根树,支持询问点到根路径权值和,子树加,换父亲 欧拉序列怎么求路径权值和? 一个点的权值只会给自己的子树中的点贡献,入栈权值正出栈权值负,求前缀和就行了! 和上题一样,伪ETT大法好 注意本题的子树需要根,所以需要找到子树区间左右的前驱和后继节点把他们splay出来才能得到子树区间,不能直接$l-1, r+1$,一开始写错了 然后注意下放标记,splay需要记录splay子树里有几个入栈几个出栈 加强版:询问任意一条路径$(u,v)$ 当然需要减去lca了,于是…
题面 传送门 题解 坑啊--我好像把\(Splay\)的东西全忘光了-- \(ETT\)(\(Euler\ Tour\ Tree\))是一种可以资瓷比\(LCT\)更多功能的数据结构,然而不管是功能还是复杂度都远远比不上\(TopTree\)和\(LCT\)(然而我似乎连\(TopTree\)都不会--) 然而一般情况下我们需要用到的只有伪\(ETT\),用人话说就是用\(Splay\)维护欧拉序,进栈的时候值为\(+v\),出栈的时候值为\(-v\),那么\(1\)到\(u\)的路径上的所有数…
未经博主同意不得转载 3729: Gty的游戏 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 448  Solved: 150 Description 某一天gty在与他的妹子玩游戏.妹子提出一个游戏,给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问将某个节点的子树中的石子移动到这个节点先手是否有必胜策略.gty很快计算出了策略.但gty的妹子十分机智,她决定修改某个节点的石子或加入某个新节点.gty不忍心打击妹子,…
题面传送门 介于自己以前既没有写过 Staircase-Nim 的题解,也没写过时间轴分块的题解,所以现在就来写一篇吧(fog 首先考虑最极端的情况,如果图是一条链,并且链的一个端点是 \(1\),那么问题可以转化为序列上的问题,即可视作有一个 \(n\) 级的阶梯,第 \(i\) 级台阶上有 \(a_i\) 个石子,每次可以选择一堆并将其中 \(x(x\le L)\) 个石子向下移动一级,不能移动最底下一级的石子,不能操作者输. 这是一个经典的 staircase 博弈的模型,对于这样的模型我…