[TJOI2018]數學計算
[TJOI2018]數學計算
思路一:直接模擬(會因為爆 l o n g l o n g long\ long long long的問題導致程式碼非常複雜)
思路二:考慮線段樹。建立一棵線段樹,其葉子節點都是對應的乘數,每個非葉子節點的值為其左右兒子的值的乘積對 mod \text{mod} mod 取模的值。這樣,任意時候都有 x = x= x=該線段樹的根的值。操作 1 1 1可以直接上,操作 2 2 2可以看做是把第 t t t次的乘數改為 1 1 1。然後考慮使用線段樹分治的思想處理即可。
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=100000+50;
inline int read(){
int cnt=0,f=1;char c=getchar();
while(!isdigit(c)){if(c=='-')f=-f;c=getchar();}
while(isdigit(c)){cnt=(cnt<<3)+(cnt<<1)+(c^48);c=getchar();}
return cnt*f;
}
struct tree{int val;}tr[N<<2];
int q,mod,t,op,m;
inline void pushup(int p){tr[p].val=(tr[p<<1].val%mod*tr[p<<1|1].val%mod)%mod;}
void build(int p,int l,int r){
if(l==r) {tr[p].val=1;return;}
int mid=(l+r)>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
pushup(p);
return;
}
void modify(int p,int l,int r,int x,int v){
if(l==r) {tr[p].val=v;return;}
int mid=(l+r)>>1;
if(x<=mid) modify(p<<1,l,mid,x,v);
else modify(p<<1|1,mid+1,r,x,v);
pushup(p);return;
}
signed main(){
t=read();
while(t--){
q=read(),mod=read();build(1,1,q);
for(int i=1;i<=q;++i){
op=read();m=read();
if(op==1) modify(1,1,q,i,m),printf("%lld\n",tr[1].val);
else modify(1,1,q,m,1),printf("%lld\n",tr[1].val);
}
}
return 0;
}
相關文章
- P4588 [TJOI2018] 數學計算
- 一個數學表示式的計算
- 用於計算數學統計的 PHP 包PHP
- 數學專業的數學與計算機專業的數學的比較計算機
- c# winform之小型數學計算器C#ORM
- 彭民德:《電子計算60年》 (3)學習計算數學跟未來結緣
- 只有計算機才能完成的小學數學作業計算機
- 數學在計算機圖形學中的應用計算機
- 美賽整理之Matlab的工程數學計算學習筆記(高等數學)Matlab筆記
- excel 計算文字型數學表示式 用 evaluateExcel
- 計算機計算小數除法的陷阱計算機
- 數學計算軟體:Wolfram Mathematica for Mac 中文版Mac
- 【財富空間】計算機起源的數學思想計算機
- Java8 學習之計算日期相差天數Java
- 改變數學的命運——《計算進化史》變數
- 國外與國內,數學與計算機 (轉)計算機
- 計算素數【Java】Java
- Octave 數值計算
- 【招募】加入我們一起學習 計算機數學吧計算機
- [招募] 加入我們一起學習 計算機數學吧計算機
- OpenCV計算機視覺學習(2)——影像算術運算 & 掩膜mask操作(數值計算,影像融合,邊界填充)OpenCV計算機視覺
- POJ 1113 Wall(思維 計算幾何 數學)
- 計算機基礎:離散數學和完備性計算機
- 得“量化”者得天下:要致富先學好數學和計算機計算機
- 計算Linux天數Linux
- 看板數量的計算
- 數值計算基礎
- 2.計算字元數字元
- 計算記錄個數
- 計算總頁數公式公式
- java計算間隔天數Java
- Java浮點數計算Java
- 【重學計算機】計算機組成原理計算機
- 小白怎麼學習雲端計算?雲端計算學習大綱
- 學習雲端計算怎麼入門,如何學習雲端計算?
- [轉載] python數學計算模組之math常用函式學習使用Python函式
- 百行以內實現複雜數學表示式計算
- 丘成桐演講全文:幾何與計算數學的關係