训练指南第一章部分例题思考

UVA 11729

题意:完成一个任务有两部分:布置时间B和执行时间J。布置一个任务的同时不能布置另一个任务。给一些任务,要求这些任务的最短完成时间。
解题思考:

  • 执行时间J长的要先布置。即要对J从大到小排序。
  • 书中是证明交换相邻一对任务,不会得到更优的解。看的时候不太理解为什么是相邻呢?其实交换任意两个任务和交换相邻任务是等价的。交换任意任务可以推出交换相邻任务;两个不相邻的任务A、B交换其实可以用许多个相邻交换“组成”。

UVA 11300

题意:每个人开始时有一定数量的金币a[i],每个人可以借出和收取其他人的金币,问最少的转手金币数。
解题思考:

  • 书中用了一步等价的“替换”,就是无论相邻人互相转手多少金币,一定可以表示为A->B转了x个金币,而x可以是正数也可以是负数,于是我们就可以“等价出”金币的流动方向为顺时针或者逆时针。
  • 书中列出了n个转手的方程(第n个可以由前面方程推出),然后将n-1个方程表示为只与x1有关的方程,转化为求数轴上一点到其他点距离的最小值。
  • 这一点答案是中位数。因为如果某一点左右两边没有相同数目的点,那么这一点往点多的方向移总可以减少总的距离。

LA 3708

题意:n个雕像均匀分布在环上,现在加入m个雕像要求移动后也均匀分布,求总的最小移动距离之和。
解题思考:

  • 本题中要证明:总有一个雕像不动。其实证明方法和上一题类似,我们会发现中位数的移动x[n/2]为0,从而总有一个雕像不动。
  • 坐标缩小,使得四舍五入之后就是结果,方便求解。

转载于:https://www.cnblogs.com/RFisher/p/9245161.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值