摘要: 前言:高处不胜寒,但贵在坚守。 Divisibility 题解上都是从结论出发去证明的。但我觉得一开始不可能都知道结论。所以稍微从思考角度出发 可以发现$y = c1* b^{n-1} + c2 * b^{n-2} + ... + cn * b^{0}$ 那么对于无限的f(y)操作,可以发现每次都是 阅读全文
posted @ 2020-08-07 13:41 levill 阅读(219) 评论(0) 推荐(0) 编辑
摘要: Tetrahedron 题意:看图就行。 首先很关键的是对那个1/h^2的转化。 思路一:等积法,高中的求法。因为是上面是三个直角所以可以把体积求出,下面三条边也可以求出,那么底面积也可以求出,那么高h也可以得到。 但是这样就得到了比较麻烦的一个高次多项的式子,就要像题解那样考虑来考虑去,很麻烦。 阅读全文
posted @ 2020-08-05 09:08 levill 阅读(95) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-08-04 08:44 levill 阅读(0) 评论(0) 推荐(0) 编辑
摘要: P1516 青蛙的约会(洛谷) 题意:在一个循环坐标轴上,有两个初始坐标为x,y的点,每个人一次跳m,n步,求解是否可以相遇,如果可以求出最小步数。 假设跳了k步后两点相遇。则有 x+k*m - (y+k*n) = T * L(T为常数,即表示为L的常数倍,因为是循环坐标轴) 转化为 TL+(n-m 阅读全文
posted @ 2020-08-03 09:15 levill 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 非常好的一道单调栈的题。 首先说一下单调栈,它维护的是一个单调的序列。 如果维护递增序列,那么栈顶大于当前值时,就pop栈顶,这样之后可以发现,栈顶的元素是左边最近的小于当前值的元素。 那么对于这道题,有一个很巧妙的转化方法:合并矩形 图片详解可见:https://blog.csdn.net/qq_ 阅读全文
posted @ 2020-08-02 15:44 levill 阅读(67) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-08-01 17:34 levill 阅读(9) 评论(0) 推荐(0) 编辑
摘要: KD-tree:一个可以维护多维空间的数据结构。 其实在本质上来说:kd-tree就是搜索的剪枝,暴力的优化。 通过树上维护的东西来判断是否要继续搜索,来实现优化的目的。 KD-tree的平衡性,沿用了替罪羊树的思想,用平衡因子来维护整个树。当树不平衡时,对树进行拍扁重构。 树节点的构建类似动态开点 阅读全文
posted @ 2020-08-01 09:10 levill 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Equal Sentences 思路:因为下标的限制,交换后位置不能和原来超过1。 那么,和后面交换,可以看成后面的和前面的交换。 那么对于每一个位置,只需要看和前面交换即可。 对于没有冲的ABCD类的位置交换组合。 经过递推之后,可以发现就是个斐波那契数列。 当引入了重复后,从只和前面的交换来看。 阅读全文
posted @ 2020-07-31 09:11 levill 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 今天做了一个题,一直MLE,然后不断压缩数组,最后还是没过,上网搜到别人的题解和我一样的数组大小都能过。 这是两个代码对比 Code1:(AC) void init() { for(int i = 0;i <= k;++i) { tag[i] = 0; for(int j = 0;j < 10;++ 阅读全文
posted @ 2020-07-30 10:15 levill 阅读(223) 评论(0) 推荐(0) 编辑
摘要: Little W and Contest 思路:首先很显然是并查集去维护答案。 一开始,所有点都是独立的。那么设CF1 = 1的总个数。CF2 = 2的总个数 那么一开始ans = C(CF1,1)*C(CF2,2)+C(CF2,3). 那么考虑合并后怎么维护答案。 这里运用了容斥思想。 当我们合并 阅读全文
posted @ 2020-07-29 08:54 levill 阅读(90) 评论(0) 推荐(0) 编辑