摘要: 首先题目等价于求出满足运行二分程序后最后r=k的排列种数。 显然对于这样的二分程序,起作用的只有mid点,mid处的值决定了接下来要递归的子区间。 于是可以一遍二分求出有多少个mid点处的值<=m,有多少个mid点处的值>m,不妨设为x和y, 那么由组合数学可以推出最后的答案是 C(x,m)*C(y 阅读全文
posted @ 2017-06-14 18:24 free-loop 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 题意:有两个长度为n的排列p和s。要求通过交换使得p变成s。交换 pi 和 pj 的代价是|i-j|。要求使用最少的代价让p变成s。 考虑两个数字pi和pj,假如交换他们能使得pi到目标的距离减少,pj到目标的距离减少。那么应该交换他们,这是一个必要的操作,也是答案的下界。 如果每一次都能找到这样的 阅读全文
posted @ 2017-06-14 13:12 free-loop 阅读(455) 评论(0) 推荐(0) 编辑