#P1472. SPOJ DOMINOES
SPOJ DOMINOES
题目描述
Johnny 把一些高度各不相同的多米诺骨牌排在一条直线上,并想把它们全部推倒。
他很懒,因此希望使用尽可能少的主动推动次数。
一块多米诺骨牌倒下时,会把倒下过程中接触到的其他多米诺骨牌继续推倒。
为了简化问题,把地面看成一条一维数轴。骨牌倒下后不会沿地面滑动,并且可以认为骨牌具有一定宽度:例如,位于位置 、高度为 的骨牌可以碰倒位于位置 的骨牌。
更严格地说:
- 一块位于 、高度为 的骨牌如果向右倒下,那么它会使位置位于
上的所有骨牌也向右倒下;
- 如果它向左倒下,那么会使位置位于
上的所有骨牌也向左倒下。
被连锁碰倒的骨牌会继续按同一方向产生连锁反应。
你每次主动推动时,可以选择任意一块尚未倒下的骨牌,并选择将它向左或向右推倒。
求使所有骨牌最终都倒下所需的最少主动推动次数。
输入格式
第一行包含一个整数 ,表示多米诺骨牌的数量:
接下来 行,每行包含两个整数 ,分别表示一块骨牌的位置和高度:
保证任意两块骨牌的位置不同。
输出格式
输出一个整数,表示为了保证所有骨牌都倒下,Johnny 最少需要主动推动多少次。
样例输入
6
1 1
2 2
3 1
5 1
6 1
8 3
样例输出
2
样例说明
例如,可以先推动位置 的骨牌,使其引发向右的连锁反应并使前面若干骨牌倒下;再从右侧推动位置 的骨牌,即可使剩余骨牌全部倒下,因此答案为 。