首页 > 编程语言 >回溯算法----MVP争夺战(93通过率)

回溯算法----MVP争夺战(93通过率)

时间:2024-11-04 12:17:55浏览次数:3  
标签:MVP index target 得分 bucket ---- scores 93

题目描述
在星球争霸篮球赛对抗赛中,最大的宇宙战队希望每个人都能拿到MVP,MVP的条件是单场最高分得分获得者。

可以并列所以宇宙战队决定在比赛中尽可能让更多队员上场,并且让所有得分的选手得分都相同,

然而比赛过程中的每1分钟的得分都只能由某一个人包揽。

输入描述
输入第一行为一个数字 t ,表示为有得分的分钟数

1 ≤ t ≤ 50
第二行为 t 个数字,代表每一分钟的得分 p,

1 ≤ p ≤ 50
输出描述
输出有得分的队员都是MVP时,最少得MVP得分。

用例1
输入
9
5 2 1 5 2 1 5 2 1
输出
6
说明
样例解释 一共 4 人得分,分别都是 6 分

5 + 1 , 5 + 1 , 5 + 1 , 2 + 2 + 2

#https://leetcode.cn/problems/partition-to-k-equal-sum-subsets/solutions/1441006/by-lfool-d9o7/
#参考lc上698题,划分为k个相等的子集
t = int(input())
scores = list(map(int,input().split()))

scores.sort(reverse=True) # 降序排序,优先使用较大的数字
numbers=[] #存放可能的MVP数量
for num in range(1,t+1):
    #平分后的分数和不能小于某一个单独时间段的分数
    if sum(scores)%num==0 and sum(scores)//num>=max(scores):
        numbers.append(num)
numbers.sort(reverse=True)
def backtrack(index,bucket,target):#index表示第几个成绩做选择,bucket:集合
    global k
    if index ==len(scores):#已经遍历完所有的分数
        return True
    for i in range(k):
        if i>0 and bucket[i]==bucket[i-1]:# 避免重复计算相同的分组
            continue
        if bucket[i]+scores[index]>target:#当前数字无法加入当前分组
            continue
        bucket[i]+=scores[index] #将当前数字加入分组中
        if backtrack(index+1,bucket,target):#递归尝试下一个数字
            return True
        bucket[i]-=scores[index] #回溯,尝试另一个组合
    return False
for k in numbers:
    bucket=[0]*k
    target = sum(scores)//k
    if backtrack(0,bucket,target):
        print(target)
        break


标签:MVP,index,target,得分,bucket,----,scores,93
From: https://blog.csdn.net/TTz012/article/details/143481176

相关文章

  • 具身智能领域,全球Top50华人图谱梳理
    AGI(通用人工智能)起于大语言模型(LLM)、终于具身智能,是人工智能未来发展的方向;“机器人+大模型”为AGI走进物理世界提供了更多的可能性,而人形机器人则被业界普遍认为是AGI最佳载体,人工智能大模型则被称作为机器人“大脑”。人形机器人大致分为四大部分:本体、高动态性能的控制算......
  • 小说的坚持第三天
    从前有一个年轻的王子叫亚瑟,他生活在一个充满魔法和神秘的王国里。他的父亲是一位英勇而威严的国王,他的母亲是一位美丽而温柔的王后。亚瑟的家族以守护王国的神奇剑“魔法之剑”而闻名于世。亚瑟自小就在父母的呵护下长大,他被教导着王子的各种技能和责任。他学会了战斗和领导,......
  • Pinctrl子系统中Pincontroller和client驱动程序的编写
    往期内容本专栏往期内容:Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体Pinctrl子系统中client端使用pinctrl过......
  • 09-鸿蒙开发中的界面开发:布局思路入门
     大家好,欢迎来到鸿蒙开发系列教程!今天,我们将深入探讨界面开发中的布局思路。布局是用户界面设计的核心,合理的布局不仅可以提升用户体验,还能使代码更加整洁和易于维护。无论你是初学者还是有一定经验的开发者,理解布局的思路都是非常有帮助的。让我们开始吧!1.什么是界面布局?......
  • 01-鸿蒙开发环境准备:新手入门指南
        大家好,欢迎来到鸿蒙开发的新世界!作为一名即将踏上鸿蒙开发之旅的开发者,首先你需要做的是准备好你的开发环境。别担心,这并不是一件难事,只要你跟着这篇文章一步步来,相信很快你就能在鸿蒙开发的道路上迈出坚实的一步。1.下载DevEcoStudio首先,你需要一台运行Wind......
  • 核心创始团队离开,「小米」、「小鹏」能否扛起国内人形机器人大旗
    百度被称作中国自动驾驶领域“黄埔军校”,那优必选则当之无愧是中国人形机器人领域“黄埔军校”。优必选作为国内人形机器人赛道最早探索者,众使目前国内人形机器人赛道百花齐放,但深究核心创始团队皆有优必选团队背景身影。2015年 ,优必选人形机器人Walker项目立项,并在2016年10......
  • (开题报告)django+vue基于的商品销售信息系统源码+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景随着互联网技术的迅猛发展,电子商务在全球范围内蓬勃发展。关于商品销售信息管理系统的研究,现有研究主要以传统的销售模式与简单的信息......
  • 头歌Flume 第2关 采集目录下所有新文件到Hdfs
    #配置source,channel,sink名称a1.sources=source1a1.sinks=sink1a1.channels=channel1#配置sourcea1.sources.source1.type=spooldira1.sources.source1.spoolDir=/opt/flume/data##定义文件上传完后的后缀,默认是.COMPLETEDa1.sources.source1.......
  • SDK数据采集:一种抓取精准用户数据并进行分析的有效方式
    SDK软件开发工具包(SDK)数据采集在现代移动应用开发中扮演着至关重要的角色。它不仅可以帮助开发者更好地理解用户行为,还能为产品优化、市场定位和精准营销提供强有力的数据支撑。下面,我们将深入了解SDK数据采集的概念、原理,并通过实例来展示它的应用和意义。集成SDK以采集用户......
  • 组合数学
    组合基础与数论基础组合数Lucas定理\[\foralln,m,\in\mathbb{N},n\geqm,p\in\mathbb{P},\binom{n}{m}\equiv\binom{\lfloorn/p\rfloor}{\lfloorm/p\rfloor}\binom{n\bmodp}{m\bmodp}\pmod{p}\]证明:引理:\(\forallp\in\mathbb{P},n\in[1,p-1]\cap......