洛谷4588 數學計算(線段樹)

2022-08-21 02:33:12 字數 891 閱讀 1351

思路妙妙妙啊。

現在我們有q個葉子節點,權值為1的線段樹,對於每次1操作,相當於將第i個葉子節點的值改為val,每次2操作就是將之前某葉節點權值改為1,最後輸出根節點的權值即可。

其實還算比較氵的題了。。。。

#includeusing namespace std;

typedef long long ll;

const ll maxn=1e5+10;

ll t;

ll n,mod;

struct treetr[maxn<<2];

void push_up(ll root)

void build(ll root,ll l,ll r)

void update1(ll root,ll l,ll r,ll x,ll key)

ll mid=l+r>>1;

if(x<=mid)

update1(root<<1,l,mid,x,key);

else

update1(root<<1|1,mid+1,r,x,key);

push_up(root);

}void update2(ll root,ll l,ll r,ll x)

ll mid=l+r>>1;

if(x<=mid)

update2(root<<1,l,mid,x);

else

update2(root<<1|1,mid+1,r,x);

push_up(root);

}ll read()

void sc(ll x)

int main()

else

sc(tr[1].mul),puts("");

} }return 0;

}

洛谷 P4588 TJOI2018 數學計算

小豆現在有乙個數x xx,初始值為1 11.小豆有q qq次操作,操作有兩種型別 一共有t tt組輸入 t 5 t leq 5 t 5 對於每一組輸入,第一行是兩個數字q,m od q 100000,m od 1000000000 q,mod q leq 100000,mod leq 1000000...

洛谷P4588 TJOI2018 數學計算

題目大意 有乙個數 x 和取模的數 mod 初始為 1 有兩個操作 m x x times m 並輸出 x mod pos x x 第pos次操作乘的數 保證合法 並輸出 x mod 題解 對時間建一棵線段樹,記錄區間積就可以了 卡點 無 c code include define maxn 100...

線段樹 P4588 TJOI2018 數學計算

這道題目,看起來只給了乙個數,與線段樹關係不大,但是將每次的操作存起來,就相當於是點更新,段查詢 乘積 這樣就可以轉化為線段樹的問題了。對於操作1,我們可以把對應的位置修改為相應值 操作2,把當前位置,和pos的位置改為1 並維護線段樹即可 includeusing namespace std co...