拼多多笔试真题-环形分厂协调补货(C++/Py/Java /Js/Go)
环形分厂协调补货拼多多技术岗 8月2号笔试 第四题题目内容某公司在nnn个城市设有区域分仓分仓沿一条环形物流干线布局——仓111与仓222相邻仓222与仓333相邻……仓nnn与仓111相邻首尾相接构成一个环。每个分仓iii需要补充aia_iai​件货物aia_iai​为非负整数。总部通过“补货班次”完成补货每个班次中调度员选择一组分仓进行集中补货被选中的分仓各补111件货物。由于环形干线上同一班次内相邻两个分仓同时补货会共用同一传送带从而产生调度冲突因此每个班次选中的分仓集合必须是环上的独立集——即任何两个被选中的分仓在环上都不能相邻注意仓111与仓nnn也是相邻的。每个班次耗时111小时。每个分仓iii必须恰好被补货aia_iai​次。请你计算最少需要多少个班次才能完成全部补货任务。输入描述第一行一个正整数TTT表示测试数据组数。对于每组测试数据第一行一个正整数nnn(1≤n≤2×105)(1 \le n \le 2 \times 10^5)(1≤n≤2×105)表示分仓数量。第二行nnn个非负整数a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​(0≤ai≤109)(0 \le a_i \le 10^9)(0≤ai​≤109)其中aia_iai​表示分仓iii需要补货的件数。输出描述对于每组测试数据输出一行一个整数表示最少需要的班次数。补充说明保证所有测试数据的nnn之和不超过2×1062 \times 10^62×106。样例1输入1 3 1 1 1输出3说明(n3)(n3)(n3)三个仓两两相邻仓111与仓222、仓222与仓333、仓333与仓111都相邻因此任意一个班次里至多只能选中111个分仓补货。三个仓各需补111件无法合并到同一班次故至少需要333个班次。一种可行方案是班次111补仓111班次222补仓222班次333补仓333。样例2输入1 4 3 0 3 0输出3说明(n4)(n4)(n4)仓111与仓333不相邻、仓222与仓444不相邻所以一个班次可以同时选中{1,3}\{1,3\}{1,3}或{2,4}\{2,4\}{2,4}。仓111、仓333各需333件仓222、仓444不需补货。每次都选{1,3}\{1,3\}{1,3}同时补111件重复333个班次即可完成全部补货又因仓111单独就需要333次不可能少于333个班次故答案为333。样例3输入1 6 1 2 3 1 2 3输出5说明(n6)(n6)(n6)环上相邻关系为111-222-333-444-555-666-111。仓222与仓333相邻二者不能在同一班次被同时补货因此它们合计需要的(235)(235)(235)次补货必须分散在555个互不相同的班次中所以班次不可能少于555。另一方面确实可以用555个班次完成全部补货例如班次111选{2,5}\{2,5\}{2,5}班次222选{3,6}\{3,6\}{3,6}班次333选{3,6}\{3,6\}{3,6}班次444选{1,3,5}\{1,3,5\}{1,3,5}班次555选{2,4,6}\{2,4,6\}{2,4,6}每个班次内的仓在环上两两不相邻符合独立集要求。累计仓111补111次、仓222补222次、仓333补333次、仓444补111次、仓555补222次、仓666补333次恰好满足需求。故答案为555。题解思路数学原理这类题对于环形图有个公式当n 1是答案就是a[0]当n为偶数时答案为max(ai ai1)当n为奇数时答案为max(max(ai ai1), sum(a)/(n 2))因此可以使用O(n)解决这个问题。C#includebits/stdc.husingnamespacestd;usinglllonglong;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intT;cinT;while(T--){intn;cinn;vectorlla(n);for(inti0;in;i){cina[i];}// 只有一个仓库的if(n1){couta[0]endl;continue;}ll sum0;ll maxAdjacent0;// 计算总和 以及 相邻仓库最大和for(inti0;in;i){suma[i];maxAdjacentmax(maxAdjacent,a[i]a[(i1)%n]);}ll ansmaxAdjacent;// 奇数环还需要考虑每个班次最多能补多少个仓库if(n%2){ll maxBatchn/2;ll needBySum(summaxBatch-1)/maxBatch;ansmax(ans,needBySum);}coutansendl;}}javaimportjava.io.*;importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args)throwsException{BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));intTInteger.parseInt(br.readLine().trim());while(T--0){intnInteger.parseInt(br.readLine().trim());long[]anewlong[n];String[]numsbr.readLine().trim().split( );for(inti0;in;i){a[i]Long.parseLong(nums[i]);}// 只有一个仓库的if(n1){System.out.println(a[0]);continue;}longsum0;longmaxAdjacent0;// 计算总和 以及 相邻仓库最大和for(inti0;in;i){suma[i];maxAdjacentMath.max(maxAdjacent,a[i]a[(i1)%n]);}longansmaxAdjacent;// 奇数环还需要考虑每个班次最多能补多少个仓库if(n%21){longmaxBatchn/2;longneedBySum(summaxBatch-1)/maxBatch;ansMath.max(ans,needBySum);}System.out.println(ans);}}}pythonTint(input())whileT0:T-1nint(input())alist(map(int,input().split()))# 只有一个仓库的ifn1:print(a[0])continuesum_val0maxAdjacent0# 计算总和 以及 相邻仓库最大和foriinrange(n):sum_vala[i]maxAdjacentmax(maxAdjacent,a[i]a[(i1)%n])ansmaxAdjacent# 奇数环还需要考虑每个班次最多能补多少个仓库ifn%21:maxBatchn//2needBySum(sum_valmaxBatch-1)//maxBatch ansmax(ans,needBySum)print(ans)javascriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,line{input.push(line.trim());});rl.on(close,(){letindex0;letTNumber(input[index]);while(T--0){letnNumber(input[index]);letainput[index].split( ).map(Number);// 只有一个仓库的if(n1){console.log(a[0]);continue;}letsum0;letmaxAdjacent0;// 计算总和 以及 相邻仓库最大和for(leti0;in;i){suma[i];maxAdjacentMath.max(maxAdjacent,a[i]a[(i1)%n]);}letansmaxAdjacent;// 奇数环还需要考虑每个班次最多能补多少个仓库if(n%21){letmaxBatchMath.floor(n/2);letneedBySumMath.floor((summaxBatch-1)/maxBatch);ansMath.max(ans,needBySum);}console.log(ans);}});Gopackagemainimport(bufiofmtos)funcmain(){in:bufio.NewReader(os.Stdin)out:bufio.NewWriter(os.Stdout)deferout.Flush()varTintfmt.Fscan(in,T)forT0{T--varnintfmt.Fscan(in,n)a:make([]int64,n)fori:0;in;i{fmt.Fscan(in,a[i])}// 只有一个仓库的ifn1{fmt.Fprintln(out,a[0])continue}varsumint64varmaxAdjacentint64// 计算总和 以及 相邻仓库最大和fori:0;in;i{suma[i]current:a[i]a[(i1)%n]ifcurrentmaxAdjacent{maxAdjacentcurrent}}ans:maxAdjacent// 奇数环还需要考虑每个班次最多能补多少个仓库ifn%21{maxBatch:int64(n/2)needBySum:(summaxBatch-1)/maxBatchifneedBySumans{ansneedBySum}}fmt.Fprintln(out,ans)}}

相关新闻

暗黑破坏神2终极角色编辑器:3分钟打造你的完美英雄

暗黑破坏神2终极角色编辑器:3分钟打造你的完美英雄

暗黑破坏神2终极角色编辑器:3分钟打造你的完美英雄 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 还在为暗黑破坏神2中漫长的升级过程而烦恼吗?想要快速体验不同职业的玩法…

2026/10/14 22:35:50 阅读更多 →
Unity编辑器模式一键切换:自定义宏ENABLE_EDITOR_MODE实现原理与实战

Unity编辑器模式一键切换:自定义宏ENABLE_EDITOR_MODE实现原理与实战

1. 项目概述:为什么我们需要“一键切换”宏?在Unity开发中,#if UNITY_EDITOR这个预处理器指令,就像我们随身携带的一把“编辑器专用钥匙”。它让我们能在编辑器里运行一些调试代码、绘制辅助线(Gizmos)、或…

2026/10/5 16:44:44 阅读更多 →
GitHub汉化插件终极指南:免费实现GitHub全面中文化界面

GitHub汉化插件终极指南:免费实现GitHub全面中文化界面

GitHub汉化插件终极指南:免费实现GitHub全面中文化界面 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub全英文…

2026/10/11 15:19:12 阅读更多 →

最新新闻

JWT弱口令风险剖析:弱密钥爆破与Token伪造防御指南

JWT弱口令风险剖析:弱密钥爆破与Token伪造防御指南

“JWT还谈得上弱口令?”第一次听到这话的人多半是这种反应。毕竟在不少开发者眼里,JWT是“签名过的凭证”,是安全的代名词。结果没想到这类“安全凭证”里最常见的问题之一,恰恰是签名密钥太弱。所谓JWT弱口令,更准确地…

2026/10/14 22:36:03 阅读更多 →
零基础AI编程实战:需求翻译、工具链组装与信任校验

零基础AI编程实战:需求翻译、工具链组装与信任校验

1. 这不是编程课,是“用AI当手”的认知重启很多人点开标题的第一反应是:“不会写代码也能开发?那还叫开发吗?”——这恰恰暴露了我们对“开发”这个词的刻板印象。过去十年,“开发”被默认绑定在IDE、语法报错、Git提交…

2026/10/14 22:36:03 阅读更多 →
社科生的工具箱:从问卷设计到数据分析,汇写把研究链路接上了

社科生的工具箱:从问卷设计到数据分析,汇写把研究链路接上了

做问卷、跑回归、写分析报告,社科研究生终于不用在五个软件之间反复横跳社科研究生的日常是这样的:在问卷星上发问卷,回收数据导出Excel;打开SPSS跑信效度和回归;把结果复制到Word里写分析;参考文献用Zoter…

2026/10/14 22:36:03 阅读更多 →
AI接单闷声赚钱:普通人用AI工具服务甲方的高效玩法

AI接单闷声赚钱:普通人用AI工具服务甲方的高效玩法

上个月我去上海跑了三天,日程排得像在赶集。见的人里有一大半,朋友圈常年不更新,微博几年前就注销了,公众号注销得干干净净,网上搜他们的名字,出来的全是别人的同名信息。就是这样一群人,靠着AI…

2026/10/14 22:36:03 阅读更多 →
【企业级全景会议记录怎么落地】从全天评审到跨部门例会,一套可复用的AI记录方案

【企业级全景会议记录怎么落地】从全天评审到跨部门例会,一套可复用的AI记录方案

开一整天的职级评审会,手机录了五个小时,回到工位才发现录音文件损坏打不开;跨部门项目例会开了三轮,关键结论散落在三个人的笔记里,谁也没法还原当时的决议;客户面谈聊得很顺畅,一周后想复盘&a…

2026/10/14 22:36:03 阅读更多 →
AI渗透工具闭源背后的责任边界与语义安全挑战

AI渗透工具闭源背后的责任边界与语义安全挑战

1. 事件还原:从公开漏洞披露到闭源决策的完整时间线事情的起点其实很普通——一个叫ARTEX的AI驱动型渗透测试工具,在GitHub上以MIT许可证开源了近三年。它不像传统扫描器那样依赖规则库匹配,而是用轻量级微调模型对HTTP流量、API请求模式和常…

2026/10/14 22:35:02 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →