algorithm - 确定每场比赛的最低分数

标签 algorithm greedy

有 T1 和 T2 队在玩游戏。两队都有 N 名球员。T1 队球员的力量用数组表示,类似地 T2 队球员。

游戏规则如下:

1.只有N场战斗。

2.任何球队的球员都不能上场两次

3.(P1 + P2)%N P1代表T1的实力。同理P2

T2 知道 T1 的命令 正在派他们的玩家玩 T2 希望在每场战斗中获得最低分数的游戏。

你的任务是确定 T2 发送玩家的顺序,以便他们获得每场战斗的最低分数

你需要打印每一轮和T2其他玩家的分数。

N=3
T1=[1,2,3]
T2=[2,0,1]
Output:[0,0,0]

N=4
T1=[0,1,2,1]
T2=[3,2,1,1]
output:[1,0,0,2]

解释案例 1 N=3: [(1+2)%3,(2+1)%3,(3+0)%3]

这个问题的最佳解决方案是什么?

一种方法是用 T1 逐一检查。

最佳答案

这不是一个完整的答案,但这是我的想法。有更多有趣的例子可以帮助发展这个想法。

对数组进行排序,一个降序,一个升序:

N=4
T1=[0,1,2,1]
T2=[3,2,1,1]

0 1 1 2
3 2 1 1

现在使用指针“移动”对齐方式,同时为当前的升序目标余数维护一个变量。

Target remainder 0
0 1 1 2
3 2 1 1
^
useless, shift pointer right
  
0 1 1 2
  3 2 1 1
    ^
    useless, shift pointer right
    
0 1 1 2
  3   2 1 1

关于algorithm - 确定每场比赛的最低分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65378009/

相关文章:

java - 计算达到分数的方法数量

algorithm - 查找包含所有不同输入字符串的连续子系列的最小长度

java - 贪心算法Java/firstFit方法

javascript - 开锁——LeetCode,为什么每次递归调用时计数器都会不断递增?

algorithm - 是否有一条边可以在不断开图形的情况下删除?

python - 实现离散对数的 Pollard Rho 算法

algorithm - 在二叉搜索树中找到两个数相加等于第三个数

algorithm - 从大列表中识别最新版本文件的更好逻辑是什么

python - 返回最长摆动子数组

algorithm - DFS 贪心色数