UCF Local Programming Contest 2017 I. Rotating Cards
题意: 有一堆数字 1 n1~n1 n 的卡片,你需要按照数字 1 n1~n1 n 的顺序将他们删去。你只能删去最上面的那张卡片,但你可以将最上面的卡片移动到最底部,也可以将最底部的卡片移动到最上面,问移动次数最少是多少。 很显然,想删去一张卡片,要么把它上面的所有卡片移动到底部,要么从底部将它拿上来。如果将这堆卡片的最上面和底部看作是首尾相连的,那么不管怎么移动,所有卡片的相对位置都是不变的。 用线段树或树状数组,区间查询,单点修改。对于删去第 kkk 张卡片,这个时候是第k-1张卡片在顶部。区间查询两张卡片之间剩余的卡片数量,就是将第 kkk 张卡片从上或从下(取决于这两张卡片一开始的相对
用户评论