均分纸牌(经典贪心)
发布日期:2021-06-29 14:13:19 浏览次数:2 分类:技术文章

本文共 498 字,大约阅读时间需要 1 分钟。

1  题目描述

有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)。

 

 

 

2 输入输出格式

输入格式:

两行

第一行为:N(N堆纸牌,1≤N≤100)

第二行为:A1,A2,…,An(N堆纸牌,每堆纸牌初始数,l≤ Ai ≤10000)

输出格式:

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

输入输出样例

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

输出样例#1:

3

 

 

3 代码实现

#include 
using namespace std;int a[10005];

转载地址:https://chenyu.blog.csdn.net/article/details/85042845 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:给定0~N之间的N个数字(大于等于0,小于N,不重复)进行按小到大排列(不用其它的经典排序算法)
下一篇:linux之sudo apt-get install **** 是到哪里下载软件以及下载到哪里去了

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月04日 17时32分10秒