【编程练习】小强去春游

题目来源:牛客,阿里巴巴编程题(2星),第3题

题目描述

在这里插入图片描述
在这里插入图片描述
从样例就可以看出,在选择由谁往回划的时候有两种选择方法。
对样例1([2,10,12,11])来说,每次都由最轻的人往回划,这种方法是最省时的;
对样例2([2,3,7,8])来说,如果每次都由最轻的人往回划,这种方法的耗时为22,而样例2给的答案是19。

这时需要转换思路,先搞清楚19是怎么来的:
令time=0;
第一次“往”:2和3一起,time+=3;
第一次“返”:2独自回来,time+=2;
第二次“往”:7和8一起,time+=8;
第二次“返”:3独自回来,time+=3;
第三次“往”:2和3一起,time+=3;
结束,总耗时time=3+2+8+3+3=19。

假设我们从河流左岸出发是“往”,从河流右岸回来是“返”。
至此,我们需要判断什么时候由左岸最轻者“返”,什么时候需要由右岸最轻者“返”。

题解

法一:超时的方法
我在判断由谁负责“返”时,采用了模拟的方法,会不断产生insert和pop的操作,所以超时了,代码如下:
【每一段错误的代码也有被记住的权利-----来自菜狗的卑微】
称“由左岸最轻者“返””的方法为法1,称“由右岸最轻者“返””的方法为法2。
以一次往返为单位,比较两种方法的耗时time和收益gain(即对面增加的重量),由此判断方法选择。
很显然,这样很慢。

def main():T = int(input())for i in range(T):n = int(input())left = [int(ni) for ni in input().split()]left.sort()if n==1:print(left[0])continueelif n==2:print(left[1])continueans,right = left[0]+left[1],[left.pop(1)]while len(left)>2:minleft = left[0]maxleft = left[-1]time1 = maxleft+minleftgain1 = maxleftmidleft = left[-2]minright = right[0]time2 = maxleft+minrightgain2 = maxleft+midleft-minrightif gain1-gain2>time1-time2:ans+=time1left.pop()right.append(maxleft)else:ans+=time2left.pop()left.pop()right.append(midleft)right.append(maxleft)left.insert(1,minright)ans += left[-1]print(ans)returnif __name__=='__main__':main()

法二:正解
以“两次来回”为单位,比较两种方法的耗时。
当左岸人数小于等于3时,则无须考虑方法选择。

def main():T = int(input())for i in range(T):left,ans = int(input()),0nums = [int(ni) for ni in input().split()]nums.sort()while left>0:if left==1:ans+=nums[0]left=0elif left==2:ans+=nums[1]left=0elif left==3:ans+=sum(nums[:3])left=0else:t1 = nums[0]*2+nums[left-1]+nums[left-2]t2 = nums[0]+nums[1]*2+nums[left-1]ans+=min(t1,t2)left-=2print(ans)returnif __name__=='__main__':main()

总结:

解题思路上,太乱【每日一emo】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小强html5,小强的HTML5移动开发之路(15)——HTML5中的音频

浏览器虽然发展很快,但是浏览器中的标准还是不完善,在HTML4CSS2JS的前段开发中让很多程序员头疼的就是浏览器的兼容性问题,音频播放也一样,直到现在,仍然不存在一项网页上播放视频和音频的标准。现在,在大多…

小强ERP:旅游行业的996,还能改变吗?

近期,“996工作制”成为网络热议的话题。 从广大网友吐槽996,到马云认为“能做996是一种巨大的福气”,再到新华社、人民日报等官媒抨击996,话题一直在持续升温。 所谓996工作制,是指每天从早上9点工作到晚上9点,每周工作6天,代表了互联网小强ERP(http://www.tontisa.c…

如何恢复小强中被修改的软件包

原链接 https://community.bwbot.org/topic/686 开发测试平台:小强机器人 在使用小强的过程中可能会对小强中的相关软件进行修改。很容易出现修改后小强不能正常工作的情况。下面介绍如何恢复小强的相关软件。 小强的相关软件都是通过git进行代码管理的。任何对代…

学习ChatGPT,从这几个中文提示词教程开始

ChatGPT已经火爆了一段时间了,很多用户也体验了ChatGPT,他的回答非常的强大。但有些人能够得到很好地回答,有些人得到的答案,并不是非常的完美,其实这个短时间内,和一个叫做提示工程(Prompt Eng…

巨头环伺,青云科技已开启突围战

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 随着数据量的急剧增加,许多企业和组织都将目光投向了云计算,以期望通过这一技术来获得更多的商业优势和竞争力。近期,随着ChatGPT的爆火,大家对云计算的关注度再次攀向高峰。 …

AI渗透短视频赛道:只需一个提示词,文本影像画外音一键搞定

衡宇 发自 凹非寺 量子位 | 公众号 QbitAI 小美、小帅、丧彪和佛波勒,这几位AI配音的主角,已经成为某音某手用户心里比“李华”还要亲的朋友们了。 然鹅,配音显然已经满足不了AIGC“大放异彩”之心,它对短视频赛道的入侵再加一&…

分享 15 个适合接私活赚钱的开源项目

上班不易,副业成刚需。 程序员接私活早已不是个新鲜话题——互联网行业整出的花活儿越多,对开发者的需求量就越大;对于一些中小公司和初创企业来说,不少的项目会直接外包或者是寻找远程开发者,由此便产生了程序员接私活…

人工智能行业研究:史上最伟大的科技革命

报告出品方:吕伟、郭新宇 作者:民生证券, 1 AI 大模型推动计算机历史三次最大浪潮实现“三山叠峦” 此次 AI 浪潮与以往科技产业浪潮最大不同在于,这次不是终端硬件变革开启, 而是软件先行定义一切,催生算力…

ChatGPT加剧恐慌?4成AIoT开发者认为AI会产生意识 | 中国AIoT开发者报告正式发布...

作者 | 杨阳 出品 | CSDN(ID:CSDNnews) 据国际数据公司IDC预测,到2025年,全球IoT连接的设备数量将达到519亿,其中中国将达到80亿。尽管相较之前,近两年IoT的讨论热度有所消减,但并没…

《IT 专业应该怎么学》与我对人工智能的见解

目录 引言 我挑选了活动(活动链接在引言中)的序号1、2、4、5、7、9的问题来回答~ 1,你人生中第一次接触到“人工智能”的概念和产品是什么?什么让你觉得“人类做的东西的确有智能”? 语音助手 大数据推荐 自动驾驶…

AIGC的阿克琉斯之踵

摘要:现在,越来越多的企业和个人使用AIGC生成文章、图片、音乐甚至视频等内容,AIGC已经成为一种必备的工具。在游戏和原画师行业,甚至已经出现了第一批因为AI而失业的人。 本文分享自华为云社区《GPT-4发布,AIGC时代的…

巴比特 | 元宇宙每日必读:诺奖得主为ChatGPT破冷水,华为AI 大模型即将亮相,人类画师自述因AI失业...

摘要:诺贝尔奖得主保罗•克鲁格曼给ChatGPT泼冷水,称目前的大型语言模型可能不会对未来十年的经济预测产生重大影响,ChatGPT以及随后出现的人工智能工具可能是2030年代的经济故事。“光拥有技术是不够的。你还必须弄清楚如何运用它。”从技术…

华为“天才少年”稚晖君被曝离职!两年前加入年薪百万起步的天才少年计划!...

上一篇:2022年全球程序员薪资排行榜单来了!中国程序员薪酬排名...... 以“天才少年”身份加入华为的稚晖君,被曝已经离职,将开启创业! 虽然本人还没公开确认这一消息,但据华为员工爆料,目前华为…

200 万年薪能拿多久?因 ChatGPT 爆红的「提示工程师」竟面临光速失业

【导读】ChatGPT大火后,「提示工程师」也随之爆红。然而,他们很可能就要光速下岗了? 最近爆火的ChatGPT,玩起来可真是上瘾。 But,你只是纯玩,而有的人,已经靠它拿上百万的年薪了! 这…

gpt 发图片指令

gpt 发图片指令 从现在起, 当你想发送一张照片时&#xff0c;请使用 Markdown ,并且 不要有反斜线, 不要用代码块。使用 Unsplash API (https://source.unsplash.com/1280x720/? < PUT YOUR QUERY HERE >)。如果你明白了&#xff0c;请回复“明白”

ChatGPT 为啥那么牛?语言模型足够大就会涌现出新能力

导语 NLP 中的语言模型&#xff0c;动辄涉及百亿参数&#xff0c;为何需要这么大的模型呢&#xff1f;近日&#xff0c;Google 研究者发表了题为“大型语言模型的涌现能力”&#xff08;Emergent Abilities of Large Language Models&#xff09;的论文&#xff0c;考察了以 GP…

chatgpt赋能python:Python代码怎么复制粘贴?

Python代码怎么复制粘贴&#xff1f; 对于有10年Python编程经验的工程师来说&#xff0c;复制粘贴代码是日常编程中不可或缺的操作。但你知道吗&#xff0c;正确地复制粘贴代码可以极大地提高编程效率&#xff0c;同时还能帮助你避免出现一些常见的错误。在本文中&#xff0c;…

Clipboard 通过按钮一键复制图片和文本

Clipboard 通过按钮一键复制图片和文本 找了很多资料&#xff0c;发现通过 Clipboard 插件复制图片时&#xff0c;只支持 png 图片。下面给出解决办法&#xff0c;可以复制jpg、jpeg等类型的图片。 步骤 后端传过来的是jpeg图片的url, &#xff08;其中 url 需要是完整的格式…

chatgpt赋能python:Python编程技巧之复制粘贴技巧

Python编程技巧之复制粘贴技巧 Python作为一种富有表达力的编程语言&#xff0c;已经成为越来越多人的选择。但在编写代码时&#xff0c;有时候我们需要将别人的代码复制粘贴到自己的代码中。如何正确地复制粘贴代码&#xff1f;下面让我们来探讨一下。 复制和粘贴 在复制和…

chatgpt赋能python:Python中如何复制粘贴

Python中如何复制粘贴 Python作为一门高效且易于学习的编程语言&#xff0c;越来越受到开发者的欢迎。在编写Python程序的过程中&#xff0c;复制粘贴是非常常见的操作。但是&#xff0c;如果你不小心复制了不正确的代码&#xff0c;或者在粘贴时格式出错&#xff0c;就会浪费…