题目描述 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。 我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋子是没有区别的) 跳动的规则很简单,任意选一颗棋子,对一颗中轴棋子跳动。跳动后两颗 ...
分类:
其他好文 时间:
2018-03-20 18:15:10
阅读次数:
167
【bzoj2144】跳跳棋 Description 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋子是没有区别的)跳动的规则很简单,任意选一 ...
分类:
其他好文 时间:
2017-12-29 12:27:52
阅读次数:
175
求三个人从a,b,c这三个位置跳到x,y,z最少多少步。跳:任意选一颗棋子,对一颗中轴棋子跳动。跳动后两颗棋子距离不变。一次只允许跳过1颗棋子。 从它跳的性质出发,向内跳只有一种操作,而向外跳有两种。这就是说,每个状态可以找到一个唯一前趋,有两个后继。这是一棵二叉树!求两个状态的最短路就是求他们到l ...
分类:
其他好文 时间:
2017-10-10 09:56:20
阅读次数:
239
思维好题! 可以发现如果中间的点要跳到两边有两种情况,两边的点要跳到中间最多只有一种情况。 我们用一个节点表示一种状态,那么两边跳到中间的状态就是当前点的父亲,中间的点跳到两边的状态就是这个点的两个儿子,从而组成一棵二叉树。 于是两个状态能够达到当且仅当他们在同一棵树上,只要看看根节点是否一样就好了 ...
分类:
其他好文 时间:
2017-10-02 21:30:42
阅读次数:
210
[BZOJ2144]跳跳棋 试题描述 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋子是没有区别的)跳动的规则很简单,任意选一颗棋子,对一颗 ...
分类:
其他好文 时间:
2017-05-16 11:00:20
阅读次数:
144
简述求LCA的倍增算法 对于树上的所有节点,我们可以很轻松地通过dfs求出其直接的父亲节点以及其深度 通过类似RMQ的原理我们可以处理出每个节点的第2^i个父亲 //这个过程既可以在dfs之后双重循环建也可以像树剖模板里那样dfs里直接建 //个人比较推荐后者,会少掉一些不必要的运算,但由于...
分类:
编程语言 时间:
2015-04-15 12:55:45
阅读次数:
148
题意:首先一个状态至多有3种跳的方法的~不能隔着格子跳的~
题解:
既然有三种方法,那么显然有两种是向外跳,一种是收敛着跳(往里)
然后这个就可以类比成父亲状态和子状态,
里兮为父,外则即子。(诶窝里斗的感觉,,这文言文有点喜感)
然后我们就发现步数是开始状态和结束状态都往里走,走到lca的步数。
或者说开始状态走到lca,然后再由lca走到结束状态。。...
分类:
其他好文 时间:
2015-01-29 09:39:28
阅读次数:
184
蒟蒻只会广搜。。。20分。。。后来发现对于一个状态,中间的一个棋子可以往两边跳,而两边的棋子最多只有一个可以往中间跳(怎么发现的?废话嘛、、、!)故每个状态看做一个点,有关连的状态连起来,就形成了一棵二叉树对于一个某个有解的状态而言,中间往两边跳的两个状态是它的儿子,两边往中间跳的状态是它的父亲于是...
分类:
其他好文 时间:
2014-11-01 11:28:49
阅读次数:
273
Description跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋子是没有区别的)跳动的规则很简单,任意选一颗棋子,对一颗中轴棋子跳动。跳...
分类:
其他好文 时间:
2014-10-27 22:56:09
阅读次数:
213