zoukankan      html  css  js  c++  java
  • CF 672 div2 D

    http://codeforces.com/contest/672/problem/D

    题目大意:

    有n个人,每个人有pi的钱,然后可以由如下操作,每次都可以挑选一个最富有的人,把它的钱给最穷的人。但是如果所有的人的钱都相等,那么就不需要执行该操作,该操作最多执行k次。问,贫富之间最大的差值是多少。

    思路:

    感觉这道题我是以一个奇怪的姿势过了。。。

    首先我们sort一下每个人的钱,然后并且统计有几个人的钱数相同。然后再分别从最小的开始加钱和从最大的开始扣钱,这两种每个都计算一次,看看k次操作,以后最小的和最大的人的钱能是多少。

    然后可能出现以下的情况

    情况1:

    右往左扣钱以后的val仍然>=左往右加钱的

    如果是大于,那么就是两者之差

    如果是等于,如果任意一段的转移的k大于0,那么之间的差值就是1(请仔细想一下)

    情况2:

    右往左扣钱以后的val<左往右加钱的,如果p的总钱数%n=0,说明能均分,即为0.否则为1.

  • 相关阅读:
    08-认识margin
    07-border(边框)
    06-padding(内边距)
    05-盒模型
    04-层叠性权重相同处理
    03-继承性和层叠性
    MySQL安装与基本管理
    数据库概述
    并发编程练习
    selectors模块
  • 原文地址:https://www.cnblogs.com/heimao5027/p/5565434.html
Copyright © 2011-2022 走看看