題目描述 description
給你n個數,有兩種操作
1:給區間[a,b]內的所有數都增加x
2:詢問區間[a,b]能被7整除的個數
輸入描述 input description
第一行乙個正整數n,接下來n行n個整數,再接下來乙個正整數q,表示操作的個數. 接下來q行每行若干個整數。如果第乙個數是add,後接3個正整數a,b,x,表示在區間[a,b]內每個數增加x,如果是count,表示統計區間[a,b]能被7整除的個數
輸出描述 output description
對於每個詢問輸出一行乙個答案
樣例輸入 sample input
32 3 4
6count 1 3
count 1 2
add 1 3 2
count 1 3
add 1 3 3
count 1 3
樣例輸出 sample output
資料範圍及提示 data size & hint
10%:130%:1100%:1by
//每個節點用乙個陣列來維護 %7的 = 0 ,1 , 2 , 3 , 4 , 5 , 6 的個數
#include#include
#include
#include
#include
#include
using
namespace
std;
const
int n=100001
;int
n,x,y,z,ans,q;
int tmp[7
];string
s;struct
node
t[n*4
]; inline
intread()
void up(int
jd)void build(int jd,int l,int
r)
int mid=l+r>>1
; build(jd
<<1
,l,mid);
build(jd
<<1|1,mid+1
,r);
up(jd);
}void down(int
jd)void add(int
jd)
if(t[jd].f) down(jd);
int mid=t[jd].l+t[jd].r>>1
;
if(x<=mid) add(jd<<1
);
if(y>mid) add(jd<<1|1
); up(jd);
} void query(int
jd)
if(t[jd].f) down(jd);
int mid=t[jd].l+t[jd].r>>1
;
if(x<=mid) query(jd<<1
);
if(y>mid) query(jd<<1|1);}
intmain()
else
}return0;
}
Codevs 4919 線段樹練習4
4919 線段樹練習4 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題目描述 description 給你n個數,有兩種操作 1 給區間 a,b 內的所有數都增加x 2 詢問區間 a,b 能被7整除的個數 輸入描述 input description 第一行乙個正整數n,接下...
codevs 4919 線段樹練習4
時間限制 1 s 空間限制 128000 kb 題目等級 gold 題目描述 description 給你n個數,有兩種操作 1 給區間 a,b 內的所有數都增加x 2 詢問區間 a,b 能被7整除的個數 輸入描述 input description 第一行乙個正整數n,接下來n行n個整數,再接下來...
codevs 線段樹練習4
題目描述 給你n個數,有兩種操作 1 給區間 a,b 內的所有數都增加x 2 詢問區間 a,b 能被7整除的個數 輸入描述 第一行乙個正整數n,接下來n行n個整數,再接下來乙個正整數q,表示操作的個數.接下來q行每行若干個整數。如果第乙個數是add,後接3個正整數a,b,x,表示在區間 a,b 內每...