>웹 프론트엔드 >HTML 튜토리얼 >Codeforces Round #250 (Div. 1) D 线段树_html/css_WEB-ITnose

Codeforces Round #250 (Div. 1) D 线段树_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 11:58:371112검색

看看type = 2的操作,对于区间[l,r]内的元素对x取模,由于取模肯定不能和取模,所以只能每个元素取模,看上去不是区间更新,但是仔细一看,若区间[l,r]内所有的元素都小于x,那么这一区间不需要管,所以还是存在区间整段操作,所以需要lazy,这里也算是一个剪枝了,剩下的就是type = 3的 单点更新,还有type = 1的区间求和,整体操作不难


int n,m;ll nnum[100000 + 55];typedef struct Node {	int l,r;	ll sum;	ll maxn;};Node tree[100000 * 4 + 55];void init() {	memset(nnum,0,sizeof(nnum));}bool input() {	while(cin>>n>>m) {		for(int i=1;i>1;	build(l,mid,id>1;	if(r  mid) return query(l,r,id>1;	if(tree[id].l == tree[id].r) {		tree[id].sum %= x;		tree[id].maxn = tree[id].sum;		return ;	}	if(r  mid)update(l,r,x,id>1;	if(pos   <br>  <br>  <p></p>  <p><br> </p>  <p><br> </p> 
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.