——problem:有N头牛,每头牛有两个参数T和D。把每头牛送到目的地要2*Ti的时间,在这期间其他牛会吃掉2*Ti*SEGMA(Di)的花,问如何排放牛的顺序使得被吃到的花最少

——solution:排序

——url:http://poj.org/problem?id=3262

一开始以为只要按照D排序就可以了,结果WA了。

正确的应该按照D/T从大到小排序。

证明如下:

任取两头牛i和j,这两头牛需要的总时间为2*(Ti+Tj),在此时间中其他牛吃的花是一定的,因此只要考虑这两头牛就可以了。

若先送牛i,则牛j吃掉的花为2*(Ti*Dj),若先送牛j,则牛i吃掉的花为2*(Tj*Di),我们只要在两者里取个小的就可以了。

注意到T,D是大于0的,因此只要在DJ/TJ和DI/TI里取一个小的。

证毕。

相关文章:

  • 2021-11-18
  • 2021-09-19
  • 2021-11-01
  • 2022-12-23
  • 2021-12-10
  • 2021-10-14
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-11
  • 2021-12-20
  • 2021-07-23
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案