線段樹 POJ2777 一些體會

2021-06-22 15:11:56 字數 1174 閱讀 8227

2014/7/4

我是彩筆系列

solo水題

因為單點更新早會了,最近學成段更新,所以看到題目就不用腦子的先碼下pushdown(),結果只是線段樹的簡單應用,,,,印證了學長的一句話:做題目不要一看題目就把演算法往上面套,要學會想辦法解決問題,演算法只是你解決問題的方法而不是唯一途徑。你要先想通怎麼解決這個問題,然後可以用什麼演算法,而不是可以用什麼演算法解決這個問題。

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define f(n) for(int i = 0;i < n; i++)

#define ff(n) for(int i = 1;i <= n; i++)

#define f(n) for(int j = 0;j < n; j++)

#define ff(n) for(int j = 1;j <= n; j++)

#define lson pos<<1

#define rson (pos<<1)+1

#define met(n,m) memset(n, m, sizeof(n))

#define ll long long

const double p= acos(-1);

const int n=110000;

struct str;

str t[n*4];

int s[50];

void build(int pos,int l,int r)

void update(int pos,int l,int r,int key)

if(t[pos].key == key)return ;

if(t[pos].key)

if(r <= mid)

else if(l > mid)

else

}void q(int pos,int l,int r)

if(r <= mid)

else if(l > mid)

else

} int main()

else

printf("%d\n",cnt);

}} }

return 0;

}

線段樹模板 poj2777

線段數塗色 include include using namespace std define maxn 100005 struct node tree maxn 4 bool visit 40 int sum void build int left,int right,int id tree i...

POJ2777 線段樹染色

初始顏色均為1,倆操作 修改 將 l,r 染為顏色z 查詢 l,r 的不同顏色數 1e5個點,1e5個操作,30種顏色 查詢 如果查詢維護區間顏色數,不滿足區間加法 顏色數較少,維護區間顏色狀態s val pushup 當前子樹s 左子樹s 右子樹s 修改 維護顏色替換標記lazy 注意pushdo...

POJ 2777 線段樹 位運算

poj 2777 有乙個長位l的區間,有t種顏色,進行o次操作,每次操作 1 n 100000,1 t 30 1 o 100000 每次操作有兩種形式 p a b c 將區間 a,b 染成顏色c q a b 詢問區間 a,b 有多少種不同的顏色 每個點的初始顏色都是1 注意 a可能大於b 線段樹的區...