【洛谷】P1031 [NOIP2002 提高组] 均分纸牌

【题解-洛谷】P1031 [NOIP 2002 提高组] 均分纸牌 要实现n堆纸牌都是平均数,那么只要实现前n-1堆是平均数,依次类推…那么移动次数也是如此,当有两堆纸牌时,只要让第一堆纸牌通过将缺少/多余的纸牌移动到第二堆就是最少移动次数;当有三堆纸牌时,只要让前两堆纸牌游动即可,依此类推…因此,这道题就是从第一碓纸牌开始,如果当前纸牌不是平均数,就把多余/缺少的纸牌移动到右边一堆,移动次数+1,最终可以得到最少移动次数。其他堆上取的纸牌,可以移到相邻左边或右边的堆上。的堆上取的纸牌,只能移到编号为。堆上取的纸牌,只能移到编号为。,表示每堆纸牌初始时的纸牌数。 阅读详情

题目描述

有NN堆纸牌,编号分别为 1,2,…,N1,2,…,N。每堆上有若干张,但纸牌总数必为NN的倍数。可以在任一堆上取若干张纸牌,然后移动。

移牌规则为:在编号为11堆上取的纸牌,只能移到编号为22的堆上;在编号为NN的堆上取的纸牌,只能移到编号为N-1N−1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。

现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

例如N=4N=4,44堆纸牌数分别为:

①99②88③1717④66

移动33次可达到目的:

从 ③ 取44张牌放到 ④ (9,8,13,109,8,13,10)-> 从 ③ 取33张牌放到 ②(9,11,10,109,11,10,10)-> 从 ② 取11张牌放到①(10,10,10,1010,10,10,10)。

输入格式

两行

第一行为:NN(NN 堆纸牌,1 \le N \le 1001≤N≤100)

第二行为:A_1,A_2, … ,A_nA1​,A2​,…,An​ (NN堆纸牌,每堆纸牌初始数,1 \le A_i \le 100001≤Ai​≤10000)

输出格式

一行:即所有堆均达到相等时的最少移动次数。

输入输出样例

输入 #1复制

4
9 8 17 6

输出 #1复制

3

说明/提示

【题目来源】

NOIP 2002 提高组第一题

【思路】

对于最优解,我们首先考虑第一堆纸牌对于最优解的贡献,如果第一堆纸牌在数量上不等于纸牌平均数的时候,是一定需要从第二堆移动纸牌到第一堆上,并且最优的情况下是只移动一次。这样,第一堆最优的情况下至少移动一次或者0次。第一堆处理完。第二堆的移动发放与第一堆一样。以此

题解:洛谷 P1031 [NOIP 2002 提高组] 均分纸牌 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。其他堆上取的纸牌,可以移到相邻左边或右边的堆上。可以在任一堆上取若干张纸牌,然后移动。共一行,即所有堆均达到相等时的最少移动次数。的堆上取的纸牌,只能移到编号为。堆上取的纸牌,只能移到编号为。,表示每堆纸牌初始时的纸牌数。移牌规则为:在编号为。 阅读详情

相关推荐

保姆级教程:用STM32CubeMX HAL库搞定ESP8266连接,附串口printf调试全流程

本文提供了一份详细的STM32CubeMX HAL库教程,指导开发者如何实现ESP8266无线模块的连接与调试。从开发环境搭建、串口配置到AT指令通信解析,涵盖了物联网开发中的关键步骤和常见问题解决方案,帮助开发者快速掌握STM32与ESP8266的集成技术。

weixin_28273593的博客 504

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1104

手把手教你用MATLAB/Simulink模拟微电网潮流方向(附代码下载)

本文提供了一份详细的MATLAB/Simulink微电网潮流仿真实战指南。通过手把手教学,指导读者从零搭建包含光伏、储能和负荷的微电网模型,并模拟并网、孤岛等多种运行场景下的潮流方向变化。文章核心在于利用Simulink实现微电网的动态潮流分析与可视化,帮助工程师深入理解分布式能源系统中的功率平衡与控制策略。

weixin_28314575的博客 106

金属粘结剂喷射3D打印技术:工艺流程与后处理关键

金属粘结剂喷射(Binder Jetting)是一种创新的增材制造技术,通过逐层喷射粘合剂将金属粉末粘结成型,再经过脱脂和烧结等后处理工序获得最终零件。这项技术的核心优势在于无需支撑结构、可实现批量生产,并且材料利用率高。在3D打印领域,金属BJ技术特别适合中小尺寸、结构复杂且表面质量要求高的零件生产。其工艺流程包括前期数据处理、打印生胚阶段、拆包与清粉,以及关键的渗透、脱脂和烧结后处理环节。后处理工艺的控制直接决定了零件的机械性能和尺寸精度,其中烧结工艺尤为关键,需要精确控制温度曲线和气氛环境。金属BJ打

weixin_35751194的博客 83

ThingsBoard 仪表板状态

请先通过阅读仪表板概述和仪表板入门案例来熟悉ThingsBoard的仪表板。文章希望通过浅显的文字描述什么是仪表板状态及如何使用。 概念 状态功能使得仪表板可以分层,配合小部件的动作,实现多层仪表板之间的跳转.每个状态对应一个仪表板的图层 每个仪表板有一个默认的根状态, 根状态可以理解为默认状态, 也就是打开仪表板默认展示的仪表板图层.编辑模式下, 点击右上角的图标来管理状态.添加多个状态后左上角出现状态切换(图层切换)下拉列表可以通过选中根状态复选框切换新的默认展示的状态/图层配合小部件的动作,实现状

物联网三分钟 2308

华为OD机试 - 不含101的数(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。小明在学习二进制时,发现了一类不含101的数,也就是:现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?输入的唯一一行包含两个正整数。输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。8 1668 → “1000”

学Java,找哪吒 1250

halcon第一讲:基本操作

本文通过Blob分析提取出图片中的硬币,来熟悉halcon的基本操作。 1、读取图像,halcon读取图像有三种方式:1)、文件->读取图像;2)、通过助手;3)、代码 *打开窗口 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) *读取图像 read_image (Image,'1.png') 读取的图像如下: 2...

qq_24946843的博客 3万+

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: [洛谷]P3956 棋盘
下一篇: [洛谷] T137252 火车编组
小猫咪可馋了
博客等级 码龄13年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值