題目
給定一棵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 做題過程中我想到了與眾不同的演算法,一般人會化簡不等式變成斜率優化做,但由於我對斜率優化不大敏感,而且一般斜率優化的題目都是用凸包 叉積來做,這題我也同樣想著用凸包做,但打完發現有...