線段樹 GD SGOI 公路維護

2021-06-26 17:42:16 字數 2036 閱讀 9014

用線段樹維護區間沒有被損壞的路的最小值,最小值對應的下標,區間被損壞的路的個數。。。標記下穿的時候先傳add,再傳mark,傳add的時候minv,add,mark都要加上add[o],傳mark的時候,minv,mark都要取最大。。。

#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 200005

#define maxm 20000005

#define eps 1e-10

#define mod 1000000007

#define inf 0x3f3f3f3f

#define lowbit(x) (x&(-x))

#define mp make_pair

#define ls o<<1

#define rs o<<1 | 1

#define lson o<<1, l, mid

#define rson o<<1 | 1, mid+1, r

typedef long long ll;

typedef unsigned long long ull;

//typedef int ll;

using namespace std;

int minv[maxn << 2];

int sum[maxn << 2];

int id[maxn << 2];

int add[maxn << 2];

int mark[maxn << 2];

int n, m, num, mi, idx;

void read(void)

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

int query(int o, int l, int r, int ql, int qr)

void pushdown(int o)

if(mark[o] != -inf)

}void pushup(int o, int l, int r)

}void updata(int o, int l, int r, int ql, int qr, int v, int k)

else

return;

} pushdown(o);

int mid = (l + r) >> 1;

if(ql <= mid) updata(lson, ql, qr, v, k);

if(qr > mid) updata(rson, ql, qr, v, k);

pushup(o, l, r);

}void update(int o, int l, int r)

pushdown(o);

int mid = (l + r) >> 1;

if(idx <= mid) update(lson);

else update(rson);

pushup(o, l, r);

}int query_min(int o, int l, int r, int ql, int qr)

pushdown(o);

int mid = (l + r) >> 1, ans = inf;

if(ql <= mid) ans = min(ans, query_min(lson, ql, qr));

if(qr > mid) ans = min(ans, query_min(rson, ql, qr));

pushup(o, l, r);

return ans;

}void work(void)

if(k == 2) updata(1, 1, n, ql, qr, x, 1);

if(k == 3) updata(1, 1, n, ql, qr, x, 2);

} printf("%d\n", ans);

}int main(void)

} return 0;

}

線段樹 維護序列

老師交給小可可乙個維護數列的任務,現在小可可希望你來幫他完成。有長為 n 的數列,不妨設為 a1,a2,an。有如下三種操作形式 把數列中的一段數全部乘乙個值 把數列中的一段數全部加乙個值 詢問數列中的一段數的和,由於答案可能很大,你只需輸出這個數模 p 的值。輸入格式 第一行兩個整數 n 和 p ...

線段樹 I 維護序列

老師交給小可可乙個維護數列的任務,現在小可可希望你來幫他完成。有長為 nn 的數列,不妨設為 a1,a2,ana1,a2,an。有如下三種操作形式 input 第一行兩個整數 nn 和 pp 第二行含有 nn 個非負整數,從左到右依次為 a1,a2,ana1,a2,an 第三行有乙個整數 mm,表示...

線段樹維護區間01

g.小 w 開關燈 problem 4467 discussion description 晚上到家小 w 通過開關燈來保持自己神經的興奮以便清醒地理筆記。n n 2 n 100,000 2 n 100,000 盞燈被連續的編號為 1 n 1 n 剛回到家的時候,所有的燈都是關閉的。小w 通過 n ...