上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 27 下一页
摘要: 联系splay ing! 这道题最好当然是用线段树写咯,但是平衡树什么东西都能维护,包括区间加,不如写一写练练手。 下放lazy的时候sum应该加上lazy的size倍,不需要用什么l和r来维护。 代码: cpp include define ll long long const int maxn 阅读全文
posted @ 2018-09-08 12:58 Garen-Wang 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 模拟赛不会系列。。。 这道题要求最小的极差(所选元素相差的最大值),最小的最大,想到了二分。 但是我菜,找不到什么单调性。 看了标程,发现可以用堆来搞定。相关算法可以从P1631和P2085看到。 思路是将每一组分别排序,然后每组预先选取第1到第c[i]个。算出一个最初的ans。 然后可以每次更新答 阅读全文
posted @ 2018-09-08 12:53 Garen-Wang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 不会区间覆盖,我真的菜! 这道题的第一个数字比较容易判断,从所有的沿海城市开始爆搜一遍,如果能全部搜到就1,否则0。 问题在于第二问。 一个可以证明的结论:当这个问题已经有解,每一个点向下面的提供水的范围是一个区间,不可能中间断了。 这个显然:如果中间断了的话,这个点就肯定无法到达,属于无解。 爆搜 阅读全文
posted @ 2018-09-05 14:11 Garen-Wang 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 简单地偏分,艰难地AC系列。 这道题看上去很简单,直接爆搜就完事了。 不加任何剪枝的爆搜是40分(听人说的),加上一个最水的最优性剪枝就80分。 这个剪枝我没想到,如果加上去90分,是这样的: 如果当前距离剩下$s$条边还没走,如果这些边权值都为最小值1,加上去的答案还大于等于当前答案,剪枝。 最后 阅读全文
posted @ 2018-08-31 14:47 Garen-Wang 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 一道很水的树形dp吧。。。 这道题就是给你一棵树,然后允许你删除掉一些点和边,使得剩下的树的权值和最大。 与最大子序列类比,我们可以显然地得出:对于最大权值和为负数的子树,我们一定不会取。 所以我们可以定义一个状态:$dp[i]$表示结点$i$及其子树的最大权值和。 状态转移方程也很显然:$dp[u 阅读全文
posted @ 2018-08-31 12:00 Garen-Wang 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 没错,我变菜了。。。 这道题可以用贪心的递推$O(n)$地搞过去。 但是因为线段树和平衡树也要支持最大子序列,所以回来了解一波$O(nlogn)$的算法。 算法思想也非常常见:分治法。 对于一个区间$[l,r]$,我们从中间给他分开,变成$[l,mid]$和$[mid+1,r]$这两个区间。 而最大 阅读全文
posted @ 2018-08-31 11:21 Garen-Wang 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 时隔半年回来做模拟题。 这道题看上去就非常的暴力了,讲道理暴力+卡常72分。 但是满分也不难拿(现在的想法),我们来看看。 显然任意一条权值非零的路径,我们都可以用来免费一波。 我们可以在原图预先floyd跑一下最短路,然后对于接下来的操作,只需要改变一些东西即可。 考虑floyd的dp意义: cp 阅读全文
posted @ 2018-08-30 20:16 Garen-Wang 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 只能说还是不会状压dp。。 这道题看上去很熟悉,就是n国王问题,只不过多了一些限制。 题目还会给你一个地图,告诉你那些地方不能放国王,那么用二进制存下来这个状态,判断的时候&一下即可。 这道题的国王的手变长了,是上下左右各两格,所以我们在定义状态的时候应该注意,在判断不可能的解的时候要左移和右移两位 阅读全文
posted @ 2018-08-30 15:14 Garen-Wang 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 终于认识了什么叫做期望。。 这道题题目挺长的哈,看上去又是期望又是图论的样子。 但是图论方面只需要做个预处理,然后就可以用dp弄进答案。 在教室之间移动,有脑子的都不会走弯路更累吧,所以最短路走一波。 然后就是dp的事情了。 设$dp[i][j][0/1]$是第$i$个时间段,从开始到现在(包含现在 阅读全文
posted @ 2018-08-29 21:16 Garen-Wang 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 神奇的位运算啊。。。 这道题显然不能用普通的回溯法解决。我们可以使用位运算。 框架同样采用dfs,但是使用了4个东西作为参数(使用二进制): 1. 作为当前在哪个位置已经放置了皇后(1表示已经放置,0表示可以放置) 2. 作为 当前已放置的皇后的左上右下对角线对当前行的影响(1表示不能放置,0表示可 阅读全文
posted @ 2018-08-29 17:59 Garen-Wang 阅读(144) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 27 下一页