摘要: 第一次用set水splay好爽啊! 这道题很明显,就是弄两个平衡树(一个也可以)。 进来一个人,就去另一边找找前驱和后继,优先找前驱,找个绝对值最小的配对走。 其实用一下set就可以了啊! 使用 就可以找到x元素, 一下就得到前驱,++一下应该就得到了后继。 其实后继也直接可用 。 再根据题意模拟一 阅读全文
posted @ 2018-08-09 14:19 Garen-Wang 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 神级剪枝。。。 首先这道题有坑点,超过50的木棍不读入。 思想肯定就是爆搜啊!但是直接的爆搜会gg。 接下来是剪枝: 1. 你当然会聪明地取能够整除的答案来枚举嘛。。 2. 这些木棍可以从大到小排序,然后从大到小凑木棍。对答案无影响。 3. 可以记录木棍的最大值和最小值,然后枚举木棍的时候就在这个区 阅读全文
posted @ 2018-08-07 18:05 Garen-Wang 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 紧接着的一道树形dp。 这道题直接告诉你这是一颗树了。叶子节点是客户。 连边要费用,客户会付钱。求不亏本情况下能满足的最大用户。 还是老思路:用 表示第i个节点的子树下,取j个客户的最大值。 还是那个方程: 要不亏本,这个值肯定要大于0嘛。所以逆序搞一搞就好了。 代码: 阅读全文
posted @ 2018-08-07 18:00 Garen-Wang 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 第一道树形dp。挺奇怪的。 这道题选择一个点是有一个先决条件,也就是要先选他父亲的点。 画出草图可以发现就是森林嘛。。。 利用网络流的思想,建立超级根结点,把以0为父亲的都连到root去。 树形dp较线性dp的不同之处就是要dp儿子。 所以在树上要dp之前先弄一下儿子,确保他已经被dp好了就可以了。 阅读全文
posted @ 2018-08-07 14:24 Garen-Wang 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 真·毒瘤题! 这道题给你那么少的东西,就是要你爆搜了。 先注意一下,不然后面的做不了了,直接WA掉。 他的意思是: 我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 所以除了最下一层的下表面之外的所有蛋糕表面积都要算进答案。 可以发现,上面的圆柱体可以按下去,所以所有的上表面等于最下的圆柱底 阅读全文
posted @ 2018-08-05 22:03 Garen-Wang 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 原来splay还能换钱呐! 这道题让我明白了一点:原来splay还可以不是二叉排序树啊! 本来第一次想,就认为我们应该要维护一个优先级,然后每个操作就更改一下。 但其实只要用来维护这段序列就可以了。。。 看一下这五种操作: 1. 将某元素置顶。先splay到根,如果左子树为空就无须操作,否则寻找后继 阅读全文
posted @ 2018-08-02 14:17 Garen-Wang 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 只要知道套差分就没难度了。 因为你要区间添加一个等差数列,等差数列做差分的话,中间的值是一样的。 随便手膜几组数据,就会发现如何处理差分数组了: 对于点$l$:加上首项$k$。 对于区间$(l, r]$:加上公差$d$。 对于点$r + 1$:减掉等差数列的第$n$项。 只要减不要写成加就可以了。。 阅读全文
posted @ 2018-07-30 23:57 Garen-Wang 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 这道题和后面一道题是孪生兄弟。。。 给你两组单调递增的序列,可以拿里面的元素相互相加,要你求出第1至第$m$小的值。 同样是那样的思路,用堆。 设$y = a_i+b_i$,那么就同样有$n$个元素了。 这里固定b的下标先不定,向堆里面添加$a_i+b_1$。 然后执行$m$次出队,每次出队补充另一 阅读全文
posted @ 2018-07-30 23:52 Garen-Wang 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 这道题跟 "P1631 序列合并" 嘻嘻相关 题目给你$n$个二次函数,给你$a$,$b$,$c$。 不过仔细的话可以发现:这三个系数都是正整数! 所以意味着二次函数的对称轴在x轴负半轴,在我们考虑的$[1, +\infty]$中的整数区间都是单调递增的。 所以同一个函数中,$x=1$时的函数值是最 阅读全文
posted @ 2018-07-30 23:46 Garen-Wang 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 注意细节! 我一开始没有分清摄像头和区域,结果都视为一谈。结果只有10分。。。 松鼠敲摄像头的顺序就是拓扑序。 为了方便起见,把区域也视为结点,然后做toposort。 最后能删除多少个摄像头就有多少个摄像头被敲,拿总数$n$来减掉这个就是答案。 代码:(我打成嗲吗) cpp include inc 阅读全文
posted @ 2018-07-30 17:07 Garen-Wang 阅读(216) 评论(0) 推荐(0) 编辑