思路:
這像是 階梯nim之類的東西
我們 直接把sg函式 設成mod(l+1)的
一棵子樹 向下的奇數層上的石子xor起來 就是答案
有加點和改值的操作 就splay維護一下
//by siriusren
#include
#include
#include
using
namespace
std;
const
int n=1000050,inf=0x3f3f3f3f,nulll=n-1;
int n,m,l,op,xx,yy,zz,cnt;
int sg[n],sg_odd[n],sg_even[n];
int first[n],next[n*2],v[n*2],tot;
int root,fa[n],ch[n][2],deep[n],d[n];
void add(int x,int y)
void push_up(int x)
void rotate(int p)
void splay(int x,int tp)
}push_up(x);
if(!tp)root=x;
}void dfs(int x,int y)
}int find(int x,int y)
int main()
else
if(op==2)
else
}}
bzoj3173 Splay 維護字首中的最大值
大致題意 有乙個空序列,依次插入1 n到該序列中,每次指定插入的位置,每次插入完成返回當前序列的lis的長度。題解 設dp i 表示 字首1 i的最長上公升子串行的長度。因為是按照遞增順序插入的,所以當剛插入完某個數到i位置 此時能保證該數是當前序列的最大值 dp i max 1 include 2...
uva 11922 splay維護數列
splay第一題,有了treap的基礎以後感覺splay還是比較好理解的,splay的優勢在於程式設計複雜度比較低且效率不錯,通過splay操作以及衍生的split和merge操作可以實現很強大的功能。1 include 2 include 3 include 4 using namespace s...
BZOJ3729 Gty的遊戲(偽ETT)
傳送門 nim 遊戲的改版,我們現在每次最多只能取走 k 個石子,那麼 sg 函式很容易寫出來 sg x mex sg x i 有 sg 0 0 用歸納法易知 sg x x bmod k 1 有 n 級台階,從 0 級開始數到 n 級。每級上都有一定的石子。每次可以把乙個階梯的石子往下移,0 級階梯...