首页 > 其他分享 >均分纸牌问题

均分纸牌问题

时间:2024-09-11 23:37:39浏览次数:1  
标签:纸牌 texttt tot 问题 均分 avg 堆牌

有 \(n\) 个人排成一列(或一个环),第 \(i\) 个人手里有 \(c_i\) 张牌,在每一步操作中,可以让某人给他左边或右边的人一张牌,问最少多少步可以让每个人手中的牌数相等。

线性均分纸牌问题

首先定义 \(\texttt{avg}\) 为纸牌总数的平均数,如果 \(\texttt{avg}\) 不是整数的话,那么就是无解。否则如果要使每堆纸牌的数量一样多的话,那么经过移动后要使 \(A_i=\texttt{avg}\)。

对于第一堆牌,它只能向第二堆牌索取,或者进行给予。设 \(x=A_i-\texttt{avg}\)。如果 \(x>0\),那么就把多的给第二堆。如果 \(x<0\),不管怎么移动,必然有几步是第二堆给第一堆 \(\lvert x \rvert\) 张牌。上述两种情况答案需要增加。如果 \(x=0\),就不用管了。

此时我们发现第一堆牌已经符合条件了,那么第一堆就可以直接忽略了,此时第二堆就变成了第一堆,继续重复上述步骤。

如何说明这样做是最优的呢?我们发现在上述过程中,每一步都是必须的,没有多余的步骤,所以其必然是最优解,这也是贪心思想的体现。

如果移牌的过程中出现负数怎么办?假设 \(c_i\) 在移动过程中是负数,那么接下来他一定会在 \(c_{i+1}\) 处拿牌。可以认为 \(i+1\) 向 \(i\) 给予牌是在 \(i\) 给予 \(i-1\) 牌之前,所以不影响结果。

对于统计答案,显然可以直接模拟,不过如果令 \(tot\) 是 \(c\) 的前缀和,可以发现让前 \(i\) 个人 \(c_i=\texttt{avg}\) 的代价就是 \(\sum\limits_{j=1}^{i} \lvert j*\texttt{avg}-tot_j \rvert\),证明如下:

标签:纸牌,texttt,tot,问题,均分,avg,堆牌
From: https://www.cnblogs.com/zhuluoan/p/18409019

相关文章

  • 遗传算法求解VRP路径规划问题
    文章目录题目:快递公司送货策略VRP问题简介遗传算法项目地址代码说明代码结构求解流程举例求解目标求解步骤总结打数模国赛前拿来练手的题,现在题目求解思路分享给大家,包括所有源代码和高清pdf论文,希望能对大家有所帮助!题目:快递公司送货策略VRP问题简介VR......
  • 【快速解决】Maven安装和配置详细教程,解决你可能出现的问题Error: JAVA_HOME not foun
    看着文章一步一步来......
  • 图与网路——最大流问题精解
    容量网络(CapacityNetwork)是一种特殊的有向图结构,其中每条边都有一个容量(Capacity),表示该边上可以通过的最大流量。在这种网络中,流量(Flow)是指从源点(Source)通过边到达汇点(Sink)的实际传输量。容量网络中的边具有方向性,且每条边的流量不能超过其容量。最大流问题(MaximumFlowProblem)......
  • 反问题综述文章
    阅读笔记Paper:“Mathematicalanalysisandnumericalmethodsforinversescatteringproblems,”p.22,2022,doi:10.4171/ICM2022/5.Chapter1:介绍问题背景Chapter2:介绍反介质问题总结了电磁、声学的递归线性法(RLM)。反问题理论结果目前是只给出了一维的稳定性(......
  • [ES] ES问题汇总
    Q:写入失败,字段数超出1000个的限制问题描述...2024-08-2610:37:06,775WARNorg.apache.flink.runtime.taskmanager.Task[]-Sink:设备历史状态写入ES(2/2)#5(0c9d2bb8575b51dced4ba167a09ec08a)switchedfromRUNNINGtoFAILED.org.elasticsear......
  • Power Designer 连接 PostgreSQL 逆向工程生成pd表结构操作步骤以及过程中出现的问题
    、使用PowerDesigner16.5链接pg数据库1.1、启动PD.选择CreateModel…。 1.2、选择Modeltypes/PhysicalDataModelPhysicalDiagram:选择pgsql直接【ok】  1.3、选择connect在工具栏选择Database-Connect…快捷键:ctrl+shift+N.如下图:  1.4、选择配置连接......
  • element plus 选择多个日期(年月日)时功能不生效问题
    问题:elementplus官网文档中的日期多选功能,设置type="months|years|dates"发现功能失效,日期选择面板显示也是默认的date,控制台警告提示type的值无效。<divclass="block"><spanclass="demonstration">Months</span><el-date-pickerv-model="va......
  • WPF创建不规则窗体时WebBrowser控件不显示的问题
    最近有小伙伴需要在不规则窗体上放置WebBrowser控件,因为设置了WindowStyle="None"和AllowsTransparency="True"。导致WebBrowser控件不显示。 界面代码如下所示:1<Windowx:Class="WebBrowserDemo.MainWindow"3xmlns="http://schemas.microsoft.com/win......
  • Java中的缓存穿透与雪崩问题:解决方案与设计模式
    Java中的缓存穿透与雪崩问题:解决方案与设计模式大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,缓存是提高性能的重要手段。然而,缓存系统在实际应用中常常会遇到缓存穿透和缓存雪崩这两种问题。本文将探讨这两种问题的成因以及在Java中......
  • 动态规划问题
    1.最长回文子串(LeetCode5) 问题描述:给定一个字符串,找出最长的回文子串。解题思路:使用动态规划建立一个二维表格dp[i][j],表示子串S[i:j+1]是否为回文串。根据dp[i][j]的值来决定dp[i][j+1]的值。#include<stdio.h>#include<string.h>#include<stdbool.h>//......