拼多多笔试真题-环形分厂协调补货(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/8/9 14:40:54 阅读更多 →
Unity编辑器模式一键切换:自定义宏ENABLE_EDITOR_MODE实现原理与实战

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

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

2026/8/9 14:39:54 阅读更多 →
GitHub汉化插件终极指南:免费实现GitHub全面中文化界面

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

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

2026/8/9 14:39:54 阅读更多 →

最新新闻

Flova多宫格视频生成实战:从AI图生视频到FFmpeg合成全流程

Flova多宫格视频生成实战:从AI图生视频到FFmpeg合成全流程

在AI内容创作领域,你是否曾幻想过能一键生成风格独特的视频内容,让创意不再受限于技术门槛?近期,一个名为“Flova”的工具及其“多宫格生视频Skill”功能在开发者社区和创意工作者中引发了广泛讨论。它能够将单张或多张图片&#…

2026/8/10 8:01:56 阅读更多 →
ROS2机器人开发从入门到实战:环境搭建、核心概念与仿真导航全流程

ROS2机器人开发从入门到实战:环境搭建、核心概念与仿真导航全流程

最近在整理机器人开发的学习路线时,发现很多同学对ROS2既充满兴趣又感到无从下手。网上的资料要么版本老旧,要么过于零散,不成体系。特别是对于零基础的开发者,从环境搭建到第一个可运行的机器人程序,中间往往卡在无数…

2026/8/10 8:01:56 阅读更多 →
Antigravity CLI 命令行工具:AI辅助编程与自动化任务实战指南

Antigravity CLI 命令行工具:AI辅助编程与自动化任务实战指南

这次我们来看一个名为 Antigravity CLI 的命令行工具。从名称和网络热词来看,它很可能与代码生成、AI辅助编程或某种开发环境增强工具有关。对于开发者而言,一个高效的 CLI 工具能极大提升日常编码、调试和系统管理的效率。本文将深入探讨 Antigravity C…

2026/8/10 8:01:56 阅读更多 →
Unity Hub安装包验证失败:从日志分析到网络代理配置的完整排错指南

Unity Hub安装包验证失败:从日志分析到网络代理配置的完整排错指南

1. 项目概述:当Unity Hub拒绝安装包时,我们该做什么? 如果你正在尝试安装或更新Unity编辑器,却卡在了“安装包验证失败”这个令人沮丧的提示上,那么你来对地方了。这几乎是每一位Unity开发者,尤其是在特定网…

2026/8/10 8:01:56 阅读更多 →
揭秘游戏高光集锦自动化生产:从算法推送到技术实现

揭秘游戏高光集锦自动化生产:从算法推送到技术实现

这次我们来看一个关于游戏精彩操作集锦的“大数据推送”现象。当你刷到类似“大数据把你推给我,就是为了让你看这波逆天4杀!”这样的标题时,背后其实是一套完整的内容生产、算法推荐和用户触达机制。这篇文章不聊具体的游戏操作,而…

2026/8/10 8:01:56 阅读更多 →
VMware虚拟机安装与配置全攻略:从环境检查到创建首个虚拟机

VMware虚拟机安装与配置全攻略:从环境检查到创建首个虚拟机

1. 先搞清楚你要用虚拟机做什么,再决定怎么装 VMware Workstation Pro 这类虚拟机软件,核心价值在于让你在一台物理电脑里,同时运行多个独立的操作系统。它不是玩具,而是开发、测试、运维甚至日常学习的刚需工具。很多人一上来就找…

2026/8/10 8:00:56 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →