摘要:
这就是国家集训队嘛i了i了。 关于路径的统计。 考虑对所有路径都对3取模。 然后路径数就是关键了。 设长度为0的路径为n0,长度为1的路径为n1,长度为2的路径为n2 那么1和2组合肯定可以为0。因为反转也算不同的路径,所以要*2。 所以方案数为n1*n2*2; 这里的难点在于与长度为0路径的计算。 阅读全文
posted @ 2020-08-28 17:18
levill
阅读(137)
评论(0)
推荐(0)
摘要:
主要在于对每个点贡献的思考。 单独看所有的方案数:每个点的贡献就是他是最大值的方案数*他的值 - 他是最小值的方案数*他的值。 对于最大值的方案数:我们找到他的左边第一个比他大的点L,右边第一个比他大的点r。 然后这个值可以分为两部分。两边分开独立的。i-L + r-i。 和两边组合形成的方案数(i 阅读全文
posted @ 2020-08-28 14:00
levill
阅读(142)
评论(0)
推荐(0)
摘要:
去考虑每个块的贡献,那么就会发现,每个块贡献的雨水,就是min(左边最高的,右边最高的)-它的高度。 但是统计这个水,暴力的话大概就要N^2了。所以我们考虑去高效地统计。 dp统计一下就行了,正反扫两遍O(n) class Solution { public: int trap(vector<int 阅读全文
posted @ 2020-08-28 12:32
levill
阅读(135)
评论(0)
推荐(0)
摘要:
观察后可以发现,对于每个块成产生的以他为高的最大面积的宽度,就是左边第一个比他小的位置到它右边第一个比他小的位置。 那么,我们可以用一个单调递增栈,在退栈时维护即可,显然退栈时栈顶和当前元素就是他左边第一个比他小的和右边第一个比他小的。 然后为了不在特殊处理结束后没退栈的元素,我们在头尾插入两个0元 阅读全文
posted @ 2020-08-28 10:08
levill
阅读(118)
评论(0)
推荐(0)
摘要:
思维量很大的一个题。 对于A类的数据,显然就是一棵树,那么LCA找下距离差即可。 对于B类的数据,是环套树。个人认为和C类数据差的不是很多了。 只是这里因为只有一个环,所以可以暴力点,把环上的所有边都先找到然后特殊处理即可。 对于C类数据,经典的仙人掌图,考虑拆环的解法。 对于每个环,拆环为树,然后 阅读全文
posted @ 2020-08-28 08:59
levill
阅读(202)
评论(0)
推荐(0)

浙公网安备 33010602011771号