摘要: 答案=回文子序列数目-回文子串数目。回文子串数目可以通过Manacher在$O(n)$时间内求出。对于求回文子序列的数目,设f[i]为以i为对称中心的字符对数,则它对答案的贡献为$2^{f[i]}-1$。对于两个数$1\leq i\leq j\leq n$,若a[i]==a[j],那么它们对f[i+... 阅读全文
posted @ 2015-09-03 19:31 Claris 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 首先旋转坐标系,把每个点可以接收的范围转化成一个正方形。然后建立k-d tree,并记录下每个点在k-d tree上的位置。对询问使用莫队算法,修改$O(\log n)$,查询期望$O(\log n)$。总复杂度$O(n\sqrt{n}\log n)$。#include#include#includ... 阅读全文
posted @ 2015-09-03 15:59 Claris 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 设一种方案里三角形上三个点的坐标分别为$(0,0),(-a,b),(c,d)$,则得到的平行四边形的面积为$ac+bd$。设$d(n)$为$n$的约数个数,$D$为$d$的生成函数,则答案的生成函数$=D^2$。先用线性筛$O(n)$求出$d$,再用FFT在$O(n\log n)$的时间内预处理出所... 阅读全文
posted @ 2015-09-03 00:47 Claris 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 对于一个点,要求出它到所有点的带权距离和,只需记录下树分治的结构然后查询即可。修改$O(\log n)$,查询$O(\log n)$。到所有点带权距离和最小的点显然是这棵树的带权重心。以1号点为根,考虑一条从父亲x到孩子y的边:若y子树内权值和>=总权值和-y子树内权值和,即2*y子树内权值和>=总... 阅读全文
posted @ 2015-09-03 00:03 Claris 阅读(1463) 评论(0) 推荐(1) 编辑