摘要: 可以发现加减号之间可以互相抵消. 真正加到答案里的只有一些前缀积. 记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 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 由于脑洞的序列不会改变,考虑用线段树维护区间内sum,左边0的个数,右边0的个数,区间内最大脑洞。对于查询l~r最大脑洞可以将l~r分成logn个区间,总复杂度O(nlogn)。 阅读全文
posted @ 2016-05-23 14:48 Yangjiyuan 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 设S(n,k)=Σ C(n,i) i=0..k 根据lucas定理可以得到 S(n,k) mod p = [ S(n/p,k/p-1)*S(n mod p,p-1)+C(n/p,k/p)*S(n mod p,k mod p) ] mod p 除法均向下取整 预处理0≤n,k<P的C,S值,根据上式递 阅读全文
posted @ 2016-05-23 14:47 Yangjiyuan 阅读(335) 评论(0) 推荐(0) 编辑