摘要:
被后缀三人组虐了一下午,写道水题愉悦身心。 题很裸,求lcq时二分下答案就行了,写的不优美会被卡时。 (写题时精神恍惚,不知不觉写了快两百行。。。竟然调都没调就A了。。。我还是继续看后缀自动机吧。。。) 阅读全文
摘要:
稍微看了一下KD-tree的讲义,大概明白了它的原理,但是实现不出来。。。 所以无耻的抄了一下黄学长的。。。 阅读全文
摘要:
容易看出ans[i]=ans[i-1]-q[i],q[i]为删去第i个数减少的逆序对。 先用树状数组算出最开始的逆序对,预处理出每个数前边比它大的和后边比它小的,就求出了q[i]的初始值。 设b[i]是第i个删除的数,pos[i]为i在数列里的位置。 对q[i]产生影响的是 1. j<i,pos[b 阅读全文
摘要:
一个序列在所有变换中都单调不降的条件是i<j,a[i]<=min[j],mx[i]<=a[j],所以套CDQ就行了。 阅读全文
摘要:
给每个国家建一个链表,这样分治过程中的复杂度就和序列长度线形相关了,无脑套整体二分就可以。 (最坑的地方是如果所有位置都是一个国家,那么它的样本个数会爆longlong!!被这个坑了一次,大于p[i]的时候break就行了)。 阅读全文
摘要:
其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333。 阅读全文
摘要:
第一道整体二分,因为只需要知道每个询问区间中比mid大的数有多少个,就可以直接用线段树区间加,区间求和了。 阅读全文
摘要:
本质是一个三维偏序,一位排序后cdq分治,一维在子函数里排序,一维用树状数组维护。 把三维相等的合并到一个里面。 阅读全文
摘要:
第一道CDQ,抄了下helenkeller的代码,感觉和归并排序差不多。。。 因为左半边的修改肯定在右半边的询问之前,所以就不用管时间的限制了,可以直接x轴排序树状数组处理y轴。。。 阅读全文
摘要:
gcd(x,y)=d-->gcd(x/d,y/d)=1。 即求Σ(i<=n/d)Σ(j<=m/d) e(gcd(i,j)) 因为e=miu×1,可以卷积。 因为多组询问,需要sqrt(n)计算。 阅读全文
摘要:
裸的2D gcd。ans=(Σ(d<=n)phi[d]*(n/d)*(m/d))*2-n*m; 阅读全文