BZOJ 3729 splay維護DFS序 博弈論

2022-04-30 05:06:07 字數 773 閱讀 7779

思路:

這像是 階梯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 級階梯...