摘要: 题意: 维护一个序列,支持两种操作:1.区间[l,r]的权值+x2.询问区间[l,r]的函数和,即∑fib(x)这里的函数即斐波那契函数数据范围:1≤n,q≤105 思路:一般求斐波那契函数的方法可以考虑矩阵乘法,这里也是这样的。我们不用线段树维护权值,我们用线段树维护线段树维护区间矩阵和。有一个矩 阅读全文
posted @ 2018-07-18 16:57 SiriusRen 阅读(358) 评论(0) 推荐(0) 编辑
摘要: //By SiriusRen #include using namespace std; const int N=100005; int a[N],n,m,f[105][105],g[N],tmp=1; struct Node{int l,r,p,k,ans,id;}ask[N]; bool cmp(Node a,Node b){return a.l<b.l;} bool cmp2(Node ... 阅读全文
posted @ 2018-07-18 14:35 SiriusRen 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个长度为 N 的序列两种操作1 l r 将[l,r]的数向右循环移位 2 l r 询问[l,r]内有多少个数等于 k其中 N,Q≤105,ai≤N 强制在线 思路: 1. 每块用一个链表维护一下 位移的话由于是链表,操作速度很快然后每个数都不超过 N,所以用一个数组记录一下每块每个数的 阅读全文
posted @ 2018-07-18 14:13 SiriusRen 阅读(198) 评论(0) 推荐(0) 编辑