GDOI2016模擬8 14數樹數

2021-07-04 14:49:01 字數 934 閱讀 2865

題目

給定一棵n 個節點的樹,標號從1~n。每個點有乙個權值。要求維護兩種操作:

1. c i x(0<=x<2^31) 表示將i 點權值變為x

2. q i j x(0<=x<2^31) 表示詢問i 到j 的路徑上有多少個值為x 的節點

時間複雜度:(n+q)(log(n+q))^2

空間複雜度:(n+q)(log(n+q))

貼**

#include

#include

#include

#define n 300001

using namespace std;

int n,m,sum,ans;

int fa[n],q[n][4],g[n],a[n+n][2],f[n*36][3],bz[n],h[n],v[n],b[n][2],c[n],w[n];

void ins(int

x,int

y)void init()

}void dfs(intx)}

void dfs1(int

x)void change(int l,int r,int

s,int ll,int z)else

}int er(int

x)void pre()

void find(int l,int r,int

s,int ll,int rr)

find(l,(l+r)/2,f[s][0],ll,rr),find((l+r)/2+1,r,f[s][1],ll,rr);

}void up(int

x,int

y,int z)

if (bz[x]y])swap(x,y);

find(1,n,w[z],bz[y],bz[x]);

}void work()else

}int main()

GDOI2016模擬8 21新數獨

題目 下面是乙個沒有數字,只有大小關係 沒錯!那些尖角都是 大於 符號!的數獨 除了大小關係外 注意相鄰格仔不能相同 還需要滿足通常的數獨規則 l 每個格仔都是1 9 的數字 l 每行都是1 9的排列 l 每列都是1 9的排列 l 每個3 3的子矩陣 上圖中用粗線隔開,一共有3 3個這樣的子矩陣 都...

GDOI2016模擬8 8旋轉

alice和bob發明了乙個新的旋轉遊戲。首先,bob給定n個數組成的序列,並把該序列平均分配成若干個塊,每塊正好包含k個數 k能整除n 第一塊由第1到第k個數構成,第二塊由第k 1個數到第2k個數構成,以此類推。接著,bob要求alice對這個序列進行一系列操作,操作有以下兩種 1.把每塊裡面的數...

GDOI2016模擬8 13總結

這次考差了。但事後想了一下,感覺收穫好大。匯報做題情況 當然,裡面不包含收穫 第一題 我的暴力爆零了,原因又是爆int 做題過程中我想到了與眾不同的演算法,一般人會化簡不等式變成斜率優化做,但由於我對斜率優化不大敏感,而且一般斜率優化的題目都是用凸包 叉積來做,這題我也同樣想著用凸包做,但打完發現有...