大意
题目大意是,给定01串,要使用左右交换把 1 聚拢到一起,问最小的交换次数
解法
感谢群友,这题用到的是中位数定理
官方解法:
每个 0 在最后要不就是在 1 区块左边,要不就是在右边。也就是说要么左边没有 1 ,要么右边没有 1。
每次有效交换必定是交换 01,结果将使得该 0 的左右 1 数量一个加一,一个减一,对其他 0 没有影响。
所以每个 0 都选择最省事的方法,哪边 1 少就去哪边。
详细证明如图,不想看了
题目大意是,给定01串,要使用左右交换把 1 聚拢到一起,问最小的交换次数
感谢群友,这题用到的是中位数定理
每个 0 在最后要不就是在 1 区块左边,要不就是在右边。也就是说要么左边没有 1 ,要么右边没有 1。
每次有效交换必定是交换 01,结果将使得该 0 的左右 1 数量一个加一,一个减一,对其他 0 没有影响。
所以每个 0 都选择最省事的方法,哪边 1 少就去哪边。
详细证明如图,不想看了