C++实现分苹果问题
题目内容
问题: 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++实现分苹果问题相关推荐
- python【蓝桥杯vip练习题库】ADV-183分苹果(差分数组 离线区间)
试题 算法提高 分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个 ...
- [蓝桥杯][算法提高VIP]分苹果(差分||树状数组)
题目描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果. 最后老师想知道每个小朋友有多少苹 ...
- java 蓝桥杯算法训练 猴子分苹果(题解)
试题 算法训练 猴子分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些 ...
- POJ NOI MATH-7826 分苹果
问题链接:POJ NOI MATH-7826 分苹果. 总时间限制: 1000ms 内存限制: 65536kB 描述 把一堆苹果分给n个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话 ...
- Java实现 蓝桥杯VIP 算法提高 分苹果
算法提高 分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1-N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li ...
- python分苹果问题_蓝桥杯--算法提高--VIP--分苹果题目(差分数组)
1. 问题描述: 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果. 最后老师想知道每个小朋 ...
- java递归分苹果_递归应用示例(放苹果)[较难 选听]
ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...
- 蓝桥杯 ADV-183 分苹果 java
问题描述 问题描述小朋友排成一排,老师给他们分苹果.小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果.最后老师想知道每个小朋友有 ...
- 蓝桥杯 ALGO-121 猴子分苹果 java
问题描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只猴子悄悄 ...
- 试题 算法训练 猴子分苹果
试题 算法训练 猴子分苹果 题目描述: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都 ...
最新文章
- 快速滚动_方老师教滚动快速作文
- delphi xe2学习笔记(1)
- ipqc异常处理流程图_产线异常处理流程
- 《基于张量网络的机器学习入门》学习笔记2
- 【PAT甲级 替换指定字符】1035 Password (20 分) Java版 4/4通过
- 踩坑记录:请求接口status返回0
- HDU 4664 Triangulation(SG函数)
- 编写测试用例方法之等价类划分法
- 无线认证 服务器是怎么回事,无线wifi认证服务器参数设置方法是什么
- linux调试网络设备,android linux wifi 等网络设备调试命令总结
- 数据分析笔试题|美团点评2020校招
- TEM测试常见问题及解答(三)
- 微信公众号扫场景二维码后,出现“该公众号提供的服务出现故障,请稍后再试“
- 大学物理复习--变化的电磁场
- Mac SOME/IP编译以及Ubuntu的SOME/IP集成与编译
- m4a转换成mp3如何操作?
- mysql注入单引号被转义_插入MySQL时转义PHP中的单引号[重复]
- 类微信界面框架的搭建
- 谈笑间学会大数据-Hive数据定义
- 商业智能BI与业务结构分析
热门文章
- 例1.1-2 Strongbox
- 服务器系统进不了路由器,Win7输入192.168.0.1打不开路由器管理界面的解决方法
- python爬取股票网站的历史周价格
- PHP-课程设计-LOL英雄资料网站
- 苹果手机数据线充不了电_深圳苹果手机数据线多少钱一条
- Java总结 - 抽象类与接口
- you-get下载b站选集_Flash选集:酷炫效果和实用的ActionScript-第1章:Flash基本知识
- 4.12 并发技术:sync包同步调度综合案例
- Uploadify的用法
- raid卡三块硬盘以上,创建没有raid5