zoukankan      html  css  js  c++  java
  • 一组数分成两组,差的绝对值最小。

    一组数分成两组,差的绝对值最小。

    这个问题是前段时间面试完美的时候被问到的。 当时没答出来,后来一直在想这个问题。 在游戏中,这个问题可以用在随机战场分组上面。 根据每个角色的装备,等级,职业等等属性,计算每个角色的“战斗力”, 并找出实力最近的两组。

    今天吃饭的时候无意中又想起这个问题,并试想了一下问题的答案:

    首先,将每个玩家的战斗力从大到小排序,记为Pi (i = [1,n]), 然后将P1放到A组。 此时A组和B组的差距是P1。

    为了弥补两组的差距,将剩下的P2--Pm个玩家放到B组,直到B组的总和大于或等于A组,如此循环往复,直到某一组人数满,将剩余的人添加到人数不满的一组,就能得到战斗力总和相差最小的两组人。

  • 相关阅读:
    【ccf线上赛普及组 2020】
    【小总结】2020.3.6
    DP优化
    noip2012day2
    noip2012day1
    3.28真题
    数据结构总结
    noi online 普及组
    小总结
    20200229模拟赛
  • 原文地址:https://www.cnblogs.com/glshader/p/3537252.html
Copyright © 2011-2022 走看看