P1031 均分纸牌——————贪心

车载面试题目(ADAS) 多数功能都是依靠的前置传感器(经过Lidar、Radar、Camera融合),比如ACC、AEB、LKA、NOA、TJA、FCW等,只有少数涉及周视传感器,比如BSD、CVW、DOW。③如果前面有车切速度小于自车车速,自车减速对减速度有要求,比如3.5m/m2,④如果前车静止了,自车有个跟停距离要求,比如2-3m。试验场有不同曲率的弯道,比如125m、250m、500m的,根据需求跟车行驶,看是否会减速,能不能驶出弯道等。迭代内容:底层通讯、网络管理、诊断、刷写、信息安全、OTA。 阅读详情

P1031 均分纸牌

题目描述

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

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

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

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

①9②8③17④6
移动3次可达到目的:

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

输入格式:

两行

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

第二行为: A 1 , A 2 , … , A n A_1,A_2, … ,A_n A1​,A2​,…,An​(N堆纸牌,每堆纸牌初始数, 1 ≤ A i ≤ 10000 1 \le A_i \le 10000 1≤Ai​≤10000 )

输出格式:

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

输入输出样例
输入样例
4
9 8 17 6

输出样例
3


先找出来纸牌数量的平均值ave,
然后对于每一对纸牌都让其减去这个平均值
所以我们得到的结果就是,如果纸牌个数大于平均值,那么它就大于0,小于平均值,它就小于0

这样一来我们可以得出这样的策略:从左到右开始找,如果第i堆纸牌的个数 a i a_i ai​不等于0,那么移动次数就+1, a i + 1    + =    a i a_{i+1}\; += \;a_i ai+1​+=ai​,一直处理到最后一个就行,应为题目保证纸牌总数必为N的倍数,所以不用担心数组越界

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,ave;
    int a[108];
    cin>>n;
    for(int i=0;i<n;++i)
        cin>>a[i], ave+=a[i];
    ave/=n;
    for(int i=0;i<n;++i)    a[i]-=ave;
    int ans = 0;
    for(int i=0;i<n;++i)
    {
        if(!a[i])       continue;
        a[i+1]+=a[i];
        ans++;
    }
    cout<<ans<<endl;
    return 0;
}

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位 本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。 阅读详情

相关推荐

MoveIt2项目想换掉KDL求解器?试试这个trac_ik插件(附源码编译避坑指南)

本文详细介绍了如何在MoveIt2项目中用trac_ik插件替代KDL求解器,提升机械臂运动学求解的效率和成功率。内容涵盖环境准备、源码编译避坑、项目集成及性能调优,特别适合需要高精度控制的协作机械臂应用场景。通过实测数据对比,trac_ik在求解时间和奇异点处理上显著优于传统KDL求解器。

weixin_30730053的博客 694

P1031 均分纸牌

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

k的博客 275

OpenFOAM-v2006重叠网格挖洞问题实战:如何手动修复overset代码中的边缘识别缺陷

本文深入探讨了OpenFOAM-v2006中重叠网格挖洞问题的实战解决方案,重点修复overset代码中的边缘识别缺陷。通过逆向工程解析挖洞决策机制,设计最小侵入式的函数override方案,并建立多级验证体系,有效解决了网格挖洞区域覆盖不全的问题,提升了计算流体动力学模拟的准确性和可靠性。

weixin_29216049的博客 432

有N堆纸牌,编号分别为 1,2,…,N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:设计算法使得各堆纸牌同样多

n = int(input("请输入卡牌堆数:")) m =input("请输入各堆卡牌的个数") num = [int(i) for i in m.split()] #现在已经把输入的值分割成数组了。 sum = 0 for t in num: sum =sum + t arg = sum//n count = 0 for c in range(len(num)-1): if num[c]==arg: print(1) if num[c] >.

m0_46411554的博客 4058

Python实战:用pdfplumber从PDF中精准提取表格数据(附完整代码)

本文详细介绍了如何使用Python库pdfplumber从PDF中精准提取表格数据,包括环境配置、标准与复杂表格处理策略、数据清洗与验证等实战技巧。通过完整代码示例,帮助数据分析师和财务专业人士实现PDF数据提取的自动化,提升工作效率。

weixin_29061821的博客 400

企业老板管理者,如何监控员工的电脑屏幕?

老板监控员工电脑,需要知道员工开机后的上网行为来及时了解到员工工作情况,及时发现上班不良行为员工,及时淘汰低价值员工。 文章目录iMonitor EAM一、计算机系统日志二、具体功能介绍1.屏幕记录2.键盘记录总结 iMonitor EAM 怎么监控员工电脑,我们需要用到第三方软件,2021年最新版本软件-iMonitor EAM,软件分管理端和客户端,管理端在管理者电脑登录,客户端在员工电脑双击安装就可以,安装中不用任何设置的,客户端安装到员工电脑后也是隐藏的,不会有任何弹窗和警告信息,是无法发现和删

iMonitorSoft的博客 2179

P1031 均分纸牌 (贪心)

P1031 均分纸牌 (贪心) 题目传送门 题意:N堆纸牌求最小移动次数使每堆纸牌数相同(保证优解且只能相邻移动) 思路:根据贪心思想:显然相邻两堆纸牌最多移动一次,我们算出每堆纸牌与平均值的差值,得到(差或多的个数)所以我们从第一堆纸牌开始,如果差值a[1]不为0,说明这相邻两堆需要移动一次,第一堆的差值只能由第二堆给予,所以更新第二堆的差值a[2]+=a[1],然后第一堆完成不管,此时的第二堆...

Harris-H的博客 689

unity之——解决利用Jenkins在Windows环境下打包unity工程中的场景为apk包,打包打不出来的问题。并且介绍Jenkins从安装到环境配置,调用unity代码的过程(填坑)!!!!!

今天第一次接触Jenkins,比较头疼。网上的Jenkins配置环境相关的资料比较散乱,并且在Windows平台下相关的配置更是少之又少。我在这里讲一下从Jenkins安装到构建工程。打包unity工程的apk包的过程。 1.首先去Jenkins官网下载安装就不说了,安装完成之后在浏览器中输入http://localhost:8080(默认访问地址)进入Jenkins web界面。进行账号的注册...

cgy56191948的博客 2020

均分纸牌

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

ztz11的博客 493

如何使用CPU-Z获取内存条频率信息(编程)

当我们需要获取计算机内存条的频率信息时,可以利用CPU-Z这个工具来实现。CPU-Z是一款专门用于获取计算机硬件信息的工具,它提供了API接口,我们可以通过编程的方式来获取内存条频率信息。你可以从CPU-Z官方网站下载适用于你的操作系统的CPU-Z程序,并从安装目录中找到。函数,我们可以初始化CPU-Z,如果返回值不为0,则表示初始化失败。函数来获取内存条频率信息,如果返回值小于等于0,则表示获取失败。函数来初始化CPU-Z并获取内存条频率信息。最后,我们将获取到的内存条频率信息打印输出,并使用。

ByteProwl的博客 460

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

jacke121的专栏 626

洛谷P1031 均分纸牌【贪心】

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

cutlery1137的博客 366

31、摩擦学中的材料选择

本博文深入探讨了摩擦学应用中材料选择的重要性,分析了材料的机械、物理和化学属性对摩擦学性能的影响。同时介绍了材料匹配原则、处理方法及表面涂层技术,以优化耐磨性和抗腐蚀性。通过实际案例和评估方法,为读者提供了系统化的材料选择流程和决策依据。

juice的博客 246

【题解】P1031 均分纸牌⭐⭐ 【贪心】

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

Suprit's blog 784

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

P1031 均分纸牌(贪心) -模拟关卡

P1031 均分纸牌   评测方式云端评测 标签NOIp提高组2002 难度普及- 时空限制1000ms / 128MB 题目描述 有N堆纸牌,编号分别为 1,2,…,N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的纸牌,只能移到编号为N−1的堆上;其他堆上取的纸牌,可...

大芝士球的博客 352

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

洛谷 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

Camera2Demo

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

洛谷 P1031 均分纸牌 贪心

P1031 均分纸牌 贪心 题目链接 代码如下 //题目只让统计次数,所以变简单了不少 //思路就是,先求平均值,然后和平均值一样的不用调整,不一样的要调整 //因为是相邻之间调整,所以把前俩相加之和算作下一个,直到0为止,加了几次就调整了几次 //0之后如果还有数就接着加,一样道理 #include&lt;cstdio&gt; using namespace std; int main()...

candiceyj的博客 369

P1031 均分纸牌线性贪心题解复盘

下次看到什么信号,我应该想到这个方法 看到「线性排列 + 相邻移动 + 均分物品 + 最少操作次数(每次移任意张计 1 次)」,直接对应线性均分纸牌模型,优先用从左到右的贪心递推求解。依据:线性排列下第 i 堆的差值只能通过第 i+1 堆补齐,不存在更优的跨堆移动方案,局部最优可推导全局最优,是该类问题的标准解法。一开始没有思路,后来想到第一堆只能从第二堆获得,到第二堆时,因为第一堆已经满足条件,所以不能动,只能在第三堆上面操作,所以直接从左到右依次操作就可以。空间复杂度 O (n),存储纸牌堆数组。

2604_96548757的博客 228

P1031 均分纸牌(贪心)

洛谷 P1031 均分纸牌题目思路代码 题目传送门 题目 有NN堆纸牌,编号分别为 1,2,…,N1,2,…,N1,2,…,N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的纸牌,只能移到编号N-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。 例如N=4N=4N=4,4堆纸牌数分别为: ①9②8③17④6 移动3次可

weixin_43793774的博客 392

(贪心)洛谷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

【题解】洛谷P1031均分纸牌[NOIP2002] 贪心+模拟

题目链接 /*模拟 从前往后扫描数组,判断距离平均数还差几张 如果小于平均数,则用后面那张补过来 如果大于平均数,则往后补*/ #include&amp;lt;cstdio&amp;gt; int a[110]; int main(){ int t,n,i,step=0,sum=0; scanf(&quot;%d&quot;,&amp;amp;n); for(i=1;i&amp;lt;=n;i++){ ...

翻过这座山,他们就会听到你的故事 321

洛谷 P1031 均分纸牌(贪心)

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

BBHHTT的博客 1109

贪心:P1031 均分纸牌(洛谷)

本题链接 这题贪心算法是关键,而且用到的思维比较巧妙。 这里引用洛谷大佬昵称是啥??的解释: 首先这里有一个简化的思想。考虑到分好后所有的纸牌数都等于平均数,我们干脆以平均数作为标准,让所有的纸牌数减去平均数,如果是正数表明需要移走这个正数数量的纸牌,注意负数需要移走的牌数就是这个负数本身,而0则是正好了,下文中把处理过的牌组就叫做简化后的卡组。 贪心思想则是从左到右依次枚举,将每个卡组上简化后的数移动到右边的卡组(再说一遍,是负数的就移走负数),这样最后一组牌就自动变成0了 但是如果简化后的牌组中有0怎么

bossmmm的博客 323

【贪心】洛谷 P1031 均分纸牌

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

。。。。 826

P1031 均分纸牌(思维,贪心)

P1031 均分纸牌 题意: 有nnn堆纸牌,第iii堆纸牌有AiA_iAi​张。一次操作中,第一堆只可以给第二堆任意张,第nnn堆只可以给第n−1n-1n−1堆任意张,其他堆iii,可以给第i−1i-1i−1或者i+1i+1i+1堆任意张。问最少的操作次数使每堆纸牌数量都相同。 思路: 第一堆只能由第二堆给出或得到,使第一堆等于平均值aveaveave。 我们可以假设第一堆不等于aveaveave,那么第二堆要通过一次操作使第一堆等于平均值。 操作之后A2A_2A2​可能是正值,也可能是负值。在这里负值只

weixin_45363113的博客 378

贪心,P1031 [NOIP2002 提高组] 均分纸牌

这个题可以秒网络流24题里的一个题

EQUINOX1的博客 424
上一篇: P1090 合并果子——————multiset
下一篇: 表达式求值——————Python大法好!
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值