随笔分类 -  线段树

摘要:离散化+线段树 阅读全文
posted @ 2016-08-11 15:28 Yangjiyuan 阅读(180) 评论(0) 推荐(0)
摘要:可以发现加减号之间可以互相抵消. 真正加到答案里的只有一些前缀积. 记s[i]为a[1]*a[2]*a[3]...*a[i].那s[i]在答案中出现的次数就是2*3^(n-i-1); 修改一个数只会对后面的数有影响. 预处理逆元然后用线段树维护即可. #include<iostream> #incl 阅读全文
posted @ 2016-05-23 14:51 Yangjiyuan 阅读(328) 评论(0) 推荐(0)
摘要:由于脑洞的序列不会改变,考虑用线段树维护区间内sum,左边0的个数,右边0的个数,区间内最大脑洞。对于查询l~r最大脑洞可以将l~r分成logn个区间,总复杂度O(nlogn)。 阅读全文
posted @ 2016-05-23 14:48 Yangjiyuan 阅读(334) 评论(0) 推荐(0)
摘要:大意:一个数组,三个操作,第一种是区间[a,b]每个数乘乘,第二种是区间[a,b]每个数加c,第三种是查询[a,b]区间的和并对p取摸。 两种操作就不能简单的只往下传标记。每次传乘法标记时,要把加法标记同时乘上乘法标记,例如某个区间先进来一个加法标记add,之后又进来一个乘法标记mul。 那么结果为 阅读全文
posted @ 2016-05-15 15:46 Yangjiyuan 阅读(187) 评论(0) 推荐(0)
摘要:1.randomDescription 给定4个参数A0,N,c,p,你需要按下式构造A1~AN: A[i]=(A[i-1]2+c)mod p 之后,你需要求出A1~AN中,第K大的数值。Input 一行五个正整数A0,N,c,p,K。Output 一行一个整数,描述答案。Sample Input 阅读全文
posted @ 2016-04-06 22:31 Yangjiyuan 阅读(224) 评论(0) 推荐(0)