摘要: 我们用树状数组做差就可以解决一切问题,我用桶排并用此来表示出第几大就可以直接求前缀和了 阅读全文
posted @ 2017-07-26 21:19 TS_Hugh 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 笛卡尔树就是你给两维限制,一维堆R,一维二叉搜索树K,平地拔起一棵Treap,最广范的应用:用LCA求区间最值,建Treap,还有个什么范围top k我表示并不会查都查不到。它最妙最高的地方在于用栈来建树:我们可以先排序K然后一个个插入,那么我们都是最右端,横容易被卡,那么我们不从上到下,我们从下到 阅读全文
posted @ 2017-07-26 21:15 TS_Hugh 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 差点就撸上LCT了....... 带权并查集就是在并查集的基础上稍作修改,我的用穿址实现的有人用记录原父亲来实现。 阅读全文
posted @ 2017-07-26 20:52 TS_Hugh 阅读(169) 评论(1) 推荐(0) 编辑
摘要: 我们只要看出来这道题 数组表示的含义就是 某个点到根节点路径权值和就行 那么我们可以把最终答案 看做 k*x+b x就是其深度 ,我们发现dfs序之后,修改一个点是差分一个区间,修改一个点的子树,可以看做对于子树中的每一个点进行 a*(deep[x]-deep[root]+1) root是子树根节点 阅读全文
posted @ 2017-07-26 20:47 TS_Hugh 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 差分就是把一个值拆成许多差的和如 1 2 4 6 9 那么 把这个东西拆成 1 1 2 2 3 就是了,当然也可以理解为对一个问题分解为多个子问题并对其进行操作来得到原问题的答案。 树上差分就更玄妙了,它既可以把原问题拆成他到根节点的所有点,也可以拆成子树,拆成子树的话修改一个点影响的是他到根的路径 阅读全文
posted @ 2017-07-26 20:38 TS_Hugh 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 这个模拟就不用说了吧...... 注意事项(救命的):1.不能回原位 2.在可以打到target的塔打target的时候,其他打不到的继续打自己的(这是显然的事情只是当时已惘然) 3.如果游戏在某一秒结束,那么这一秒年龄不加 4.蚂蚁半径0.5 5.蚂蚁窝上不能有蚂蚁 6.HP别加爆,信息素别减爆 阅读全文
posted @ 2017-07-26 07:51 TS_Hugh 阅读(230) 评论(1) 推荐(0) 编辑