倍增
文章平均质量分 51
bluelanzhan
这个作者很懒,什么都没留下…
展开
-
noip 2016 天天爱跑步(倍增+差分)
一个人从a跑到b。 l=lca(a,b)//倍增 f[l][0]:为l的爸爸。 把他拆成四个人。 分别从a跑到根的人。 从f[l][0]跑到根的人。 从根跑到b的人。 从根跑到l的人。//差分的思想, 我们要让a到b最短路径上所有的点经过次数都+1,并记录时间 那么在差分数组上让a点+1,b点+1,l点-1,,fa[l][0](l的父亲)-1; 如何记录每一个人从a跑到b的信息...原创 2018-05-18 20:54:11 · 385 阅读 · 0 评论 -
2012 noip 开车旅行(倍增)
对于每个点要找离它次近和最近的点,我们可以先把海拔高度排序,对于点i , 离他次近和最近的点一定在i-1,i-2,i+1,i+2这四个位置中,先找最近再找次近=、= 因为一直往右走,所以按排序前每个点的位置从左往右找,找完一个点删除,这样可以保证次近点和最近点都在该点的右边,同时可以保证信息的连续性。 sta[i][j]表示a在i这个点开车,过2^j轮后,a走的路程;stb同理 f[i][j...原创 2018-10-09 11:59:20 · 250 阅读 · 0 评论