摘要: 按价值从大到小考虑每个元素,维护一个线性基,如果向其中加入该元素的编号仍然构成线性基,则将其加入。 不会证明。当做线性基的一个性质吧。 阅读全文
posted @ 2018-09-02 19:06 Gloid 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 类似于平面最近点对,考虑分治,即分别计算分割线两侧的最小三角形再考虑跨过线的三角形。 复杂度证明也是类似的,对于某一个点,在另一侧可能与其构成最小三角形的点在一个d*d/2的矩形内(两边之和大于第三边),并且这些点所组成的三角形周长均不小于d。然而并不清楚这里至多会有多少个点,vfk曾说上界是16, 阅读全文
posted @ 2018-09-02 18:19 Gloid 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 显然可以dp。显然可以单调队列优化一下。 阅读全文
posted @ 2018-09-02 13:45 Gloid 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一通套路之后得到 求出中间那个函数的前缀和的话就可以整除分块了。 暴力求的话复杂度其实很优秀了,大约在n~nlogn之间。 不过可以线性筛做到严格线性。考虑其最小质因子,如果是平方因子那么只有其有贡献,否则由于多了一个质因子,将函数值取反并加上该质因子贡献。 阅读全文
posted @ 2018-09-02 13:21 Gloid 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 显然可以状压dp。显然过不了。 考虑暴力模拟退火。每次随机改变一个数所属集合即可。 并不明白要怎么调参。 阅读全文
posted @ 2018-09-02 11:42 Gloid 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 如果能够知道不大于n的合法数有多少个,显然就可以二分答案了。 考虑怎么求这个。容易想到容斥,即枚举完全平方数。我们知道莫比乌斯函数就是此种容斥系数。筛出来就可以了。 注意二分时会爆int。 阅读全文
posted @ 2018-09-02 01:29 Gloid 阅读(188) 评论(0) 推荐(0) 编辑