洛谷 P1031 均分纸牌

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

P1031 均分纸牌

题目链接:https://www.luogu.org/problemnew/show/P1031

题目描述

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

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

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

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

①9②8③17④6

移动3次可达到目的:

从 ③ 取 4 张牌放到 ④ (9 8 13 10) -> 从 ③ 取 3 张牌放到 ②(9 11 10 10)-> 从 ② 取 1 张牌放到①(10 10 10 10)。

输入输出格式

输入格式:

键盘输入文件名。文件格式:

N(N 堆纸牌,1 <= N <= 100)

A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)

输出格式:

输出至屏幕。格式为:

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

输入输出样例

输入样例#1: 
4
9 8 17 6
输出样例#1: 
3





题解:从第一堆开始,先满足当前堆即可,即使后面补足前面为负数也一样,因为补全的次序是随意的,所以最后的次数还是相同的。

AC代码:

#include<iostream>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn =107;
int n,a[maxn];
int main()
{
    int sum = 0;
    cin>>n;
    _for(i,1,n)
    {
        cin>>a[i];
        sum+=a[i];
    }
    int avg = sum/n;
    int ans = 0;
    _for(i,1,n-1)
    {
        if(a[i]==avg)continue;
        if(a[i]<avg)
        {
            ans++;
            a[i+1]-=(avg-a[i]);
        }
        else
        {
            ans++;
            a[i+1]+=(a[i]-avg);
        }
    }
    cout<<ans<<endl;
    return 0;
}

ARM芯片内部的高速公路:手把手教你用AMBA Designer配置NIC-400互连控制器 本文详细介绍了如何使用AMBA Designer工具配置ARM芯片中的NIC-400互连控制器,涵盖从基础拓扑构建到高级QoS设置的完整流程。通过实际案例演示,帮助开发者掌握AXI协议下的高效片上网络设计,提升SoC性能与能效比。 阅读详情

相关推荐

AI 自动生成商业计划书:AIGC 如何助力创业者?

在创业的早期阶段,商业计划书(Business Plan)是至关重要的。它不仅用于吸引投资者、明确发展路径,还能帮助团队对业务模式、市场定位和财务预测有清晰认知。然而,撰写一份高质量的商业计划书往往需要投入大量时间和精力。如今,AIGC(AI Generated Content,人工智能生成内容)技术正在改变这一现状。借助 AIGC,创业者可以更快速、高效地创建商业计划书,并通过 AI 进行优化和数据分析。

2401_82808034的博客 3781

【洛谷】P1031 [NOIP2002 提高组] 均分纸牌(详细思路)

C++ 详细思路分享

身外满风月,姑娘桃花映面 774

机器学习入门基础 | 基于python的高光谱图像特征挖掘:PCA + 形态学属性处理可视化实战

本文介绍了一种基于PCA和形态学操作的高光谱图像特征提取方法。通过主成分分析降低数据维度,再运用面积开闭操作增强空间结构特征,有效去除噪声并填补孔洞。实验采用WHU-HI-HanChuan数据集,提供完整的Python实现代码,包括数据加载、PCA降维、形态学处理及结果可视化等步骤。该方法能够显著改善图像质量,为后续分类和变化检测任务提供更好的特征输入。实验结果表明,不同阈值的形态学处理能呈现不同程度的空间结构增强效果,对区域生长、分割和聚类等应用具有重要价值。

lestatlu的博客 1046

【洛谷】P1031 均分纸牌(配数学证明)

题目地址: https://www.luogu.com.cn/problem/P1031 题目大意是,给定一个NNN维向量,每一维表示该位置的纸牌数,保证纸牌总数可以被NNN整除。现进行如下操作,允许从任意一堆纸牌中将若干纸牌移到左右临近的堆中(第一堆只能移到第二堆,最后一堆只能移到倒数第二堆)。问至少进行多少次操作可以让每堆纸牌数相等。 思路如下:考虑逆过程,先求出终了状态里每堆纸牌数,一步一步...

数学、算法爱好者的博客 2534

电源完整性之仿真设计原理

电源完整性(Power Integrity),简称为PI,也就是大家平常听说的PI。PCB板上的电源设计也是非常重要的,不当的设计也会引起很重要的影响。所以电源完整性PI和信号完整性SI,是我们互连设计人员应该同等重视的问题。今天整理本人接触的电源完整性PI的一些原理,从不的角度去看PI,会有不同的理解,下面开始喽!!! 提到互连的电源设计,可能首先想到的电源分配网络(Power Distribution Nets),因为互连电源会有许多种,直流DC和交流AC,还有不同的电压调节模块(VRM)与不同的负载端

刘小同学的博客 7373

026、传感器校准:加速度计校准

本文详细介绍了无人机飞控系统中加速度计的校准方法。作者从一次炸机事故引入,强调加速度计校准的重要性。文章首先解释了加速度计测量原理和误差来源,包括零偏、尺度因子和交叉轴耦合。重点介绍了两种校准方法:六位置法利用重力作为参考,操作简单但精度有限;椭球拟合通过采集大量数据点进行最小二乘拟合,精度更高但实现复杂。文章还指出温度补偿这一常被忽视的关键因素,并分享了实际调试中的经验教训,包括采样时长、安装误差、验证方法等。最后建议初学者从六位置法入手,逐步优化校准精度,强调良好的校准是飞控性能的基础。

2401_88858637的博客 45

P1031 均分纸牌

P1031 均分纸牌 这道题我想的方法很麻烦。 是一个模拟。 模拟的操作:遍历一遍数组,从左到右遇到大于平均值往后分摊,中途遇到大于平均数的数直接都分到这里。 遇到小于平均值的,往后叠小于平均值的数,遇到大于的数就分一点过去,直到比平均值差的值都被分摊完。 这样是线性的,主要操作是第二步,负的叠起来加上去等价于反向传回来,如果提前遇到大于平均数的就直接先往后分, 便于第二步的操作(这就...

mxYlulu的博客 199

YOLOv9原创自研:卷积魔改 | 一种新颖的风车形卷积(PConv)融合注意力机制,加强微弱小目标检测能力

为了进一步提升小目标检测能力,风车形卷积(PConv)融合注意力机制进一步提升小目标检测能力

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 362

洛谷 P1031 均分纸牌

题目描述 有 NNN 堆纸牌,编号分别为 1,2,…,N1,2,…,N1,2,…,N 。每堆上有若干张,但纸牌总数必为 NNN 的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为 111 堆上取的纸牌,只能移到编号为 222 的堆上;在编号为 NNN 的堆上取的纸牌,只能移到编号为 N−1N-1N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出一...

WINDZLY的博客 383

uni-app - 解决 H5 微信公众号授权登录后,无法回退到 “上一页“ 的问题(微信登录后如何返回到触发它的那一页?无法通过 uni.navigateBack() 返回到前一页的问题?)详细教程

uniappH5微信登录重定向后无法返回到原来进入前的页面了,uni-appH5微信浏览器中授权微信登录后,无法正常回退问题,uniappH5微信登录后怎么返回上一页,uniapp公众号登陆后使用uni.navigateBack()回不去上一页,uniapp微信登录成功后返回页面后一直自动刷新页面,uniapph5授权成功后如何返回上一页,uniappH5微信登录后怎么返回到触发它的那一页去,公众号h5在授权后如何跳转回到刚进入时的页面,微信公众号H5网页返回上一页疑问,解决微信H5静默授

🏆 前端领域优质创作者 7715

少儿学编程系列--使用递归画出龙形曲线DragonCurve

龙形曲线(Dragon Curve) 龙形曲线(Dragon Curve)又叫分形龙,是一种自相似碎形曲线的统称,因形似龙的蜿蜒盘曲而得名 使用黄金比例画龙形曲线 根据黄金比例画一条龙曲线。每次递归,第一步向左转32.89度,移动0.74倍原距离;第二个递归步骤向右转46.99度,移动原来距离的0.55倍。请查看这个网页(https://larryriddle.agnesscott.org/ifs/heighway/goldenDragon.htm)了解关于龙形黄线数学的细节 龙形曲线效果 .

penriver的博客 2297

贪心算法-均分纸牌-JAVA

[均分纸牌]有N堆纸牌,编号分别为1,2,…,n。每堆上有若干张,但纸牌总数必为n的倍数.可以在任一堆上取若干张纸牌,然后移动。移牌的规则为:在编号为1上取的纸牌,只能移到编号为2的堆上;在编号为n的堆上取的纸牌,只能移到编号为n-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如:n=4,4堆纸牌分别为:① 9 ②

你若嘻哈过盛,别人就不再欣赏你的认真 4064

洛谷P1031 均分纸牌【贪心】

题目链接:洛谷P1031 均分纸牌 程序说明: 贪心算法,先计算出平均数即每堆牌的数目,规定每一堆牌只能由其相邻的右侧牌堆提供(这里的提供有正有负),如果某牌堆的数目恰好已经是正确的数目了则跳过该牌堆。 代码如下: #include <iostream> using namespace std; const int MAX = 10000; int n, sum, cnt, a[M...

cutlery1137的博客 366

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

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

(贪心)洛谷P1031均分纸牌

洛谷P1031均分纸牌 思路: 离散化没怎么学,题库a不动了,写点思维题放松下。 求平均数,算差值。差值为0就不用动他,其他的转嫁给下一堆。 代码: #include<bits/stdc++.h> const int N=1e4+10; const int mod=1e7+9; const int maxn=0x3f3f3f3f; const int minn=0xc0c0c0c0; ...

Z7784562的博客 275

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

洛谷 P1031 [NOIP 2002 提高组] 均分纸牌

n:纸牌的堆数。cards:一个动态数组,用于存储每堆纸牌的数量。total:所有纸牌的总数。avg:每堆纸牌应该达到的平均数。moves:记录移动的次数。这道题通过贪心算法高效地解决了纸牌均分的问题。关键在于理解每次移动的最优选择是如何影响全局的,以及如何通过简单的差值传递来实现最少移动次数。代码实现简洁明了,适合初学者理解和掌握贪心算法的基本应用。通过这道题,我们不仅学会了如何解决具体的纸牌移动问题,还掌握了贪心算法在实际问题中的应用方法,这对于解决其他类似的最优化问题具有重要的启发意义。

Yiping2012ABC的博客 1175

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

洛谷P1031均分纸牌代码及注释思路

2301_80284302的博客 292

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

P1031 [NOIP2002 提高组] 均分纸牌

Ljx的博客 356

洛谷P1031均分纸牌

题目描述有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如 N=4,4 堆...

Palace_的博客 427

洛谷 P1031 [NOIP 2002 提高组] 均分纸牌 (贪心算法)

移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其实这些担心纯属多余,a[ n - 1 ]移动完成后,a[ n ]一定等于0,不然怎么做到平均数为sum呢?如果a[ 1 ] ~ a[ k - 1 ] 都等于零,而a[ k ] ≠ 0 ,那么a[ k + 1 ] = a[ k + 1 ] + a[ k ]。注意:由于我们每堆牌都要一次移好,所以a[ k ]移好之后就不用管了,所以a[ k ] = 0可有可无。

elisaruo的博客 1373

【洛谷】P1031 均分纸牌 题解

从第一个牌堆开始,如果第一个牌堆差值为0,那么说明它不需要其他牌堆给他牌。如果是他有多余的牌,那么也只能给右边那一个,要完或者给完就没有它的事了,此时可以记录一次操作。题目要求用最少的牌堆移动次数,那么,他每次往左或往右分牌或要牌都把它下一次要分给周围其他牌堆的牌都要到手或者分出去。要想将牌堆数量均分,我们首先想到先去求取牌堆数的平均值,然后算出每个牌堆与目标均值的差值,弄明白每个牌堆的需求。其他堆上取的纸牌,可以移到相邻左边或右边的堆上。的堆上取的纸牌,只能移到编号为。堆上取的纸牌,只能移到编号为。

lcx_defender的博客 462

洛谷·P1031 [NOIP 2002 提高组] 均分纸牌

考虑分治算法的操作流程,每次迭代都找到一个最大值,并对最大值两边的区间(都不包含最大值),进行相同处理,而每次迭代最多进行2次移动操作,即最大值分别向左右两边移动一定数值,而之后的迭代将不再与该最大值相关(因为后面的区间都不包含它),所以不会出现重边。经过上述操作,每个节点值都将成为目标值,满足要求,同时由其步骤,显然就是线性算法的运行步骤,而最优图是由分治算法得到的,因此由分治算法正确性即可得到线性算法的正确性。若u>v,则去掉该边,加上一条(v,u,-w),权重为负数。

Rich2015的博客 235

洛谷P1031 均分纸牌

P1031 均分纸牌 题目链接-均分纸牌 解题思路 贪心算法,最简单的模拟 最坏的情况就是移动n-1次 如果纸牌本来就满足条件就不需要再移动 预处理就是求每堆纸牌与平均数的关系,多1记为1,少1记为-1 从左至右依次扫描,a[i]>0的就把多的部分给右边那堆,a[i]<0的就从右边那堆拿过来补上 附上代码 #include<bits/stdc++.h> using na...

Fiveneves的博客 404

洛谷P1031 [NOIP 2002 提高组] 均分纸牌 python题解

移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。有 N 堆纸牌,编号分别为 1,2,…每堆上有若干张,但纸牌总数必为 N 的倍数。,AN​,表示每堆纸牌初始时的纸牌数。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。对于 100% 的数据,1≤N≤100,1≤Ai​≤10000。例如 N=4 时,4 堆纸牌数分别为 9,8,17,6。

2201_75920261的博客 641

洛谷p1031均分纸牌

均分纸牌noip2002提高day1 t1签到题 有N堆纸牌,编号分别为1,2,…,N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的纸牌,只能移到编号为N-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动次数使每...

diezheng7361的博客 190

【洛谷p1031】均分纸牌

【博客园的第一条随笔,值得纪念一下】 均分纸牌【传送门】 洛谷上的算法标签是 这道题是一道贪心题,过了四遍才过(蒟蒻有点废) 第一遍的时候考虑的非常少,只想到了求出平均数→求差值→从左往右加差值; 这样出来的结果永远是n-1,只过了一个点。 附上错误想法(不要被误导): #include<iostream> #include<cstdio&...

weixin_30235225的博客 112
上一篇: 洛谷 P1803 凌乱的yyy
下一篇: 洛谷 P1605 迷宫
sortmin
博客等级 码龄9年 45粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值