摘要:
题目传送门 考虑一条边所做的贡献,为这条边两端的树节点的数目之差的绝对值,因此我们可以搜索,随便钦定一个点为根,然后记录一下每个点子树的大小,那么对于每条边所做的贡献,就是w[i]*abs((n-siz[v[i]])-siz[v[i]]),其中i为边的编号,abs为取绝对值,siz[x]表示x的子树 阅读全文
posted @ 2019-10-24 08:15
shao0320
阅读(150)
评论(0)
推荐(0)
摘要:
题目传送门 考虑用线段树进行区间求和,暴力修改。 我们发现开根号操作并不能直接像加减一样直接修改,但是他有一个非常良好的性质,对于一个小于等于1e12的数,其进行下取整开根操作至多不超过6次就可以到1,对于1,我们显然不需要进行任何操作,因此修改的复杂度是O(nlogn),数据只有1e5,因此不用在 阅读全文
posted @ 2019-10-24 08:09
shao0320
阅读(197)
评论(0)
推荐(0)
摘要:
这种最优解和深度有关的,可以使用迭代加深对dfs进行优化。 但显然普通的IDDFS效率还是不能满足这题的要求,因为直接枚举分母明显是不行的(可能达到1e7),那么我们可以对IDDFS进行上下界剪枝。 下界优化1:我们可以发现,题目要求升序排列,因此可以从上次分母+1开始枚举 下界优化2: 我们发现枚 阅读全文
posted @ 2019-10-24 08:05
shao0320
阅读(337)
评论(0)
推荐(0)
摘要:
题面传送门 我们发现只有25个格子,应该是可以用爆搜过掉这道题的。但是裸的dfs时间复杂度过高,我们要进行相应的优化。 首先,由于马的数量过多,我们应该选择让空格“走”。 接下来我们发现这道题又很明显的一个限制条件,最多不能超过15步,所以我们可以使用迭代加深进行优化,所谓的迭代加深搜索,本质上还是 阅读全文
posted @ 2019-10-24 07:46
shao0320
阅读(190)
评论(0)
推荐(0)

浙公网安备 33010602011771号