题目内容
问题: n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。
输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。
输出描述: 输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
测试用例

  输入例子:  47  15  9  5  输出例子:3

解题思路:
1、因为是平分苹果、因此苹果总数必须是奶牛个数的整数倍
2、算出苹果的平均数、用每个奶牛的苹果减去平均数、得到每个奶牛的多出或者相差的苹果数
3、因为每次只能移动两个苹果、因此每个奶牛对出或者相差的苹果数必须是2的倍数(也就是对num % 2 == 0)
4、将相减大于0的所有苹果相加除以2就是需要移动的次数(因为每次只能移动两个)
代码示例

#include <iostream>
using namespace std;int main()
{int count = 0;       int size = 0;                // 奶牛的个数cout << "输入个数:" << endl;cin >> size;int *arr = new int[size];    // 存放苹果个数cout << "输入每个奶牛身上苹果个数:" << endl;for (int i = 0; i < size; ++i){cin >> arr[i];count += arr[i];  // 将所有苹果加起来}if (count % size != 0)  // 判断苹果总数是否是奶牛总数的倍数{cout << "分配失败:" << -1 << endl;return 0;}count = count / size;  // 计算平均数int sum = 0;for (int i = 0; i < size; ++i){arr[i] -= count;      // 此处是直接在数组上进行操作if (arr[i] % 2 != 0)  // 判断差值是否是2的倍数{cout << "分配失败:" << -1 << endl;return 0;}if(arr[i] >= 0)    // 将相减大于0的苹果加起来{sum+= arr[i];}}cout << "次数:" << sum / 2 << endl;return 0;
}

总结:第一次写博客,将自己解决分苹果问题的思路和代码分享给大家、希望可以互相学习^^!

C++实现分苹果问题相关推荐

  1. python【蓝桥杯vip练习题库】ADV-183分苹果(差分数组 离线区间)

    试题 算法提高 分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个 ...

  2. [蓝桥杯][算法提高VIP]分苹果(差分||树状数组)

    题目描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果. 最后老师想知道每个小朋友有多少苹 ...

  3. java 蓝桥杯算法训练 猴子分苹果(题解)

    试题 算法训练 猴子分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些 ...

  4. POJ NOI MATH-7826 分苹果

    问题链接:POJ NOI MATH-7826 分苹果. 总时间限制: 1000ms 内存限制: 65536kB 描述 把一堆苹果分给n个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话 ...

  5. Java实现 蓝桥杯VIP 算法提高 分苹果

    算法提高 分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li ...

  6. python分苹果问题_蓝桥杯--算法提高--VIP--分苹果题目(差分数组)

    1. 问题描述: 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果. 最后老师想知道每个小朋 ...

  7. java递归分苹果_递归应用示例(放苹果)[较难 选听]

    ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...

  8. 蓝桥杯 ADV-183 分苹果 java

    问题描述 问题描述小朋友排成一排,老师给他们分苹果.小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果.最后老师想知道每个小朋友有 ...

  9. 蓝桥杯 ALGO-121 猴子分苹果 java

    问题描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只猴子悄悄 ...

  10. 试题 算法训练 猴子分苹果

    试题 算法训练 猴子分苹果 题目描述: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都 ...

最新文章

  1. 快速滚动_方老师教滚动快速作文
  2. delphi xe2学习笔记(1)
  3. ipqc异常处理流程图_产线异常处理流程
  4. 《基于张量网络的机器学习入门》学习笔记2
  5. 【PAT甲级 替换指定字符】1035 Password (20 分) Java版 4/4通过
  6. 踩坑记录:请求接口status返回0
  7. HDU 4664 Triangulation(SG函数)
  8. 编写测试用例方法之等价类划分法
  9. 无线认证 服务器是怎么回事,无线wifi认证服务器参数设置方法是什么
  10. linux调试网络设备,android linux wifi 等网络设备调试命令总结
  11. 数据分析笔试题|美团点评2020校招
  12. TEM测试常见问题及解答(三)
  13. 微信公众号扫场景二维码后,出现“该公众号提供的服务出现故障,请稍后再试“
  14. 大学物理复习--变化的电磁场
  15. Mac SOME/IP编译以及Ubuntu的SOME/IP集成与编译
  16. m4a转换成mp3如何操作?
  17. mysql注入单引号被转义_插入MySQL时转义PHP中的单引号[重复]
  18. 类微信界面框架的搭建
  19. 谈笑间学会大数据-Hive数据定义
  20. 商业智能BI与业务结构分析

热门文章

  1. 例1.1-2 Strongbox
  2. 服务器系统进不了路由器,Win7输入192.168.0.1打不开路由器管理界面的解决方法
  3. python爬取股票网站的历史周价格
  4. PHP-课程设计-LOL英雄资料网站
  5. 苹果手机数据线充不了电_深圳苹果手机数据线多少钱一条
  6. Java总结 - 抽象类与接口
  7. you-get下载b站选集_Flash选集:酷炫效果和实用的ActionScript-第1章:Flash基本知识
  8. 4.12 并发技术:sync包同步调度综合案例
  9. Uploadify的用法
  10. raid卡三块硬盘以上,创建没有raid5