Luogu P1031 均分纸牌(贪心)

 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

说明

noip2002提高组

 

 

  这是一道很简单的贪心题。

  i表示第i个牌堆,每次都保证i牌堆是等于平均纸牌

  因为如果这堆牌少,那么肯定要从别的牌堆借(可以让下一堆牌暂时负数),

  这堆牌多,肯定要扔去别的牌堆。

  那么我们当前只考虑该牌堆的牌是否等于平均纸牌(贪心)

  如果多余,就扔去下一个牌堆,如果少就从下一个牌堆借(下一个牌堆表示mdzz)。

  这样弄下去,保证了1到n-1的牌堆是等于平均牌数,那么第n堆牌也等于平均牌数。

  

  

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     int n, a[105], sum, ans;
 6     sum = ans = 0;
 7     scanf("%d", &n);
 8     for(int i=1; i<=n; i++)    //第i堆牌,从1开始到n
 9     {
10         scanf("%d", a+i);
11         sum += a[i];        
12     }
13     
14     sum /= n;                //计算平均牌数
15     for(int i=1; i<=n; i++)
16     {
17         if(a[i] != sum)        //如果不等于
18         {
19             if(a[i] > sum)    //大于就扔多于的
20             {
21                 a[i+1] += a[i] - sum;    //重置下一个牌堆数量
22                 a[i] = sum;
23                 ans++;    //次数+1
24             }
25             else            //小于就拿少于的
26             {
27                 a[i+1] -=  sum - a[i];    //重置下一个牌堆数量
28                 a[i] = sum;
29                 ans++;
30             }
31         }
32     }
33     
34     printf("%d", ans);
35     return 0;
36 }

 

转载于:https://www.cnblogs.com/yBaka/p/7375195.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用MySQL语句批量替换指定wordpress文章中的图片路径

天花了很多时间将SAE服务器中的图片下载到本地&#xff0c;然后删掉&#xff0c;但是有一个问题就是&#xff0c;所有文章中的图片路径还是以前的&#xff0c;没有根据域名来。导致下午某些时间段图片都是无法显示的&#xff0c;后来想到用MySQL直接批量替换&#xff0c;执行才…

Head First summary

学习面向对象好几年了&#xff0c;但一直没有深刻的理解面向对象&#xff0c;直到最近开始做自动化测试平台开发过程中&#xff0c;才发现面向对象的魅力。因而决定好好把设计模式学习下。首先先了解下设计模式相关的定义以及主意事项&#xff1a; 1.  什么是设计模式&#x…

【51单片机快速入门指南】6.4:DHT11、DHT22单总线温湿度传感器

目录硬知识DHT11DHT22通信协议读取步骤数据解读DHT11DHT22示例程序DHT11_22.cDHT11_22.h测试程序main.c实验现象DHT11DHT22STC89C52 Windows 10 20H2 Proteus 8 Frofessional v8.9 SP2 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《温湿…

获取编辑器两种方法

编辑器&#xff0c;是地图数据进行编辑的主要工具&#xff0c;这个Editor其实当一个新的地图开始时就创建了。事实上&#xff0c;其他ArcMap扩展对象也是在创建地图时产生的。 为了获得这个Editor&#xff0c;可以使用FindExtensionByCLSID 或者FindExtensionByName接口。 priv…

Redis持久化的简单介绍

Redis的强大功能很大程度上是由于其将所有数据都存储在内存中&#xff0c;为了使Redis在重启后仍能保证数据不丢失&#xff0c;需要将数据从内存中以某种形式持久化到硬盘中。 Redis支持两种方式的持久化&#xff0c;一种是RDB方式&#xff0c;一种是AOF方式。其中&#xff0c;…

图片响应式

img-responsive 编辑 本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01; img-responsive是图片响应式的意思&#xff0c;在Bootstrap框架中&#xff0c;有一个.img-responsive的CSS样式。应用这个样式以后…

【电路补习笔记】1、电阻的参数与选型

目录参数精度温度系数功率贴片电阻色环电阻传感器电阻老师的主页&#xff1a;唐老师讲电赛 视频地址&#xff1a;唐老师讲电赛之唐老师讲电子器件&#xff08;1&#xff09;电阻参数与选型 电阻按封装分为直插、贴片与印刷电阻&#xff08;有些电阻直接印刷在PCB上&#xff09;…

redis本地安装

redis在本地的安装及使用1、首先下载redis安装包&#xff0c;下载地址如下 http://pecl.php.net/package/redis/2.2.7/windows输入phpinfo()查看php版本进行相应的下载&#xff0c;注意版本2、下载完成后将php_redis.dll放到ext下&#xff0c;在php.ini中添加extensionphp_re…

Xcode模拟器和真机生成的日志查看(ios必知必会)

在进行实际代码开发的过程中&#xff0c;我们会生成一些plist文件&#xff0c;但是如何在调试过程中查看这些plist文件是否被成功生成以及生成的内容是否正确&#xff1f; 如果查看模拟器生成的日志和真机生成的日志到底如何查看&#xff1f; DEMO 首先生成一个plist文件 NSArr…

【Net】测试网络、查看IP

http://www.speedtest.cn/ 转载于:https://www.cnblogs.com/flydkPocketMagic/p/7380400.html

WordPress 不同分类目录调用不同模板的方法

https://www.jb51.net/cms/275887.html wordpress不同分类调用不同模板文件 用wordpress做站特别是企业站的时候&#xff0c;多个分类的内容不同需要显示的页面也不一样&#xff0c;比如有些分类显示的是产品缩略图&#xff0c;有些显示的是公司新闻公告等&#xff0c;此时需要…

【电路补习笔记】2、电容的参数与选型

目录分类无极性电容有极性电容电解电容钽电容参数精度温度系数材质耐压温度范围ESRESL电容并联高频特性焊盘&#xff08;PAD&#xff09;和旁路电容的放置老师的主页&#xff1a;唐老师讲电赛 视频地址&#xff1a;唐老师讲电赛之唐老师讲电子器件&#xff08;1&#xff09;电容…

【转】测试工程师日常工作需要关注的问题

在互联网公司追求价值最大化、成本最低化的今日&#xff0c;很多互联网公司开始提倡高的开发测试比率&#xff0c;工程师都有必要提升自己的贡献、产能&#xff0c;我们也需要将一些问题融入到工作中&#xff0c;在做中寻找答案。 跳出自己的小圈子&#xff0c;甚至跳出测试角色…

SQL 必知必会·笔记14更新和删除数据

1. 更新数据 基本的UPDATE语句&#xff0c;由三部分组成&#xff1a; 要更新的表列名和它们的新值确定要更新那些行的过滤条件更新单列示例&#xff1a; 1 UPDATE Customers 2 SET cust_email kimthetoystore.com 3 WHERE cust_id 1000000005; 更新多列的示例&#xff1a; 1 …

1005:I Think I Need a Houseboat-poj

1005:I Think I Need a Houseboat 总时间限制: 1000ms内存限制: 65536kB描述Fred Mapper is considering purchasing some land in Louisiana to build his house on. In the process of investigating the land, he learned that the state of Louisiana is actually shrinkin…

【电路补习笔记】3、电感的参数与选型

目录分类电感的模型参数精度直流电阻&#xff08;DCR&#xff09;通流能力&#xff08;Irms&#xff09;自谐振频率&#xff08;SRF&#xff09;饱和电流&#xff08;Isat&#xff09;标号老师的主页&#xff1a;唐老师讲电赛 视频地址&#xff1a;唐老师讲电赛之唐老师讲电子器…

八排序算法

概述 排序有内部排序和外部排序。内部排序是数据记录在内存中进行排序&#xff0c;而外部排序是因排序的数据非常大&#xff0c;一次不能容纳所有的排序记录。在排序过程中须要訪问外存。 我们这里说说八大排序就是内部排序。 当n较大。则应採用时间复杂度为O(nlog2n)的排序方法…

wordpress CAS

https://wordpress.org/plugins/authorizer/#description 安装 Authorizer 插件&#xff0c;待测试。

poj 3436 (最大流)

题意&#xff1a;每台电脑共有p种零件&#xff0c;现在有n台机器&#xff0c;给出n台机器每台需要的一些种类零件当原料(0代表不需要&#xff0c;1代表必须要&#xff0c;2代表可有可无&#xff09;和输出的产品零件。问怎么安排生产线使生产出来零件可以组装的电脑最多。 思路…

web前端java script BOM学习笔记2017.8.1

DOM: document object model 文档对象模型提供了一套可以访问和修改HTML文档内容的方法访问&#xff1a;获取修改&#xff1a;设置1 JS要去操作HTML元素&#xff0c;必须要先用JS找到他&#xff0c;转换为JS的DOM对象操作&#xff1a;a 标签属性b css属性c 元素内容2 找对象的方…