[ABC150E] Change a Little Bit
2023-03-10
题目
翻译
难度&重要性(1~10):7
题目来源
AtCoder
题目算法
数学,贪心
解题思路
显然 \(C_i\) 越小的位越早被修改越好。所以我们将 \(C_i\) 从小到大排序。对于任意的 \(S\),答案都是一样的。我们依次考虑 \(S\) 和 \(T\) 的每一位是否相同。设我们考虑到第 \(i\) 位。
若相同,则这一位对答案的贡献为 \(0\)。
若不同,则根据上面的贪心,第 \(i\) 位之前的位置已被修改完毕。所以在 \(T\) 中第 \(i\) 位之前的位置可以任意选数,对第 \(i\) 位的贡献不影响。
对于第 \(i\) 位之后的位置,我们枚举有多少个不相同的位置。
则答案为:
\(2^n\left(\sum\limits_{i=1}^n2^{i-1}\cdot C_i\cdot\sum\limits_{j=0}^{n-i}\dbinom{n-i}{j}(j+1)\right)\)
考虑化简:
\(\sum\limits_{j=0}^{n-i}\dbinom{n-i}{j}(j+1)=\sum\limits_{j=0}^{n-i}\dbinom{n-1}{j}+\sum\limits_{j=0}^{n-i}\dbinom{n-i}{j}j=2^{n-i}+\sum\limits_{j=0}^{n-i}\dbinom{n-i}{j}j\)
考虑吸收恒等式:
\(∵\begin{aligned}\dfrac{r}{k}\dbinom{r-1}{k-1}&=\dfrac{r}{k}\times \dfrac{(r-1)^{\underline{k-1}}}{(k-1)!}=\dbinom{r}{k}\end{aligned}\)
\(∴r\dbinom{r-1}{k-1}=k\dbinom{r}{k}\)
即
\(\begin{aligned}2^{n-i}+\sum_{j=0}^{n-i} \dbinom{n-i}{j}j =2^{n-i}+\sum_{j=0}^{n-i}\dbinom{n-i-1}{j-1}(n-i)=2^{n-i}+(n-i)\sum_{j=0}^{n-i-1}\dbinom{n-i-1}{j}=2^{n-i}+(n-i)2^{n-i-1}\end{aligned}\)
完成状态
已完成
[ABC150E] Change a Little Bit的更多相关文章
- 代码的坏味道(10)——发散式变化(Divergent Change)
坏味道--发散式变化(Divergent Change) 发散式变化(Divergent Change) 类似于 霰弹式修改(Shotgun Surgery) ,但实际上完全不同.发散式变化(Dive ...
- [LeetCode] Coin Change 硬币找零
You are given coins of different denominations and a total amount of money amount. Write a function ...
- input事件与change事件
输入框的change事件: 必须等到输入框失去焦点的时候才会触发,鼠标在空白的地方点一下: 输入框的input事件: 在输入内容变化的同时,实时的触发,不需要等到失去焦点.
- Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
Change the Target Recovery Time of a Database (SQL Server) 间接checkpoints flushcache flushcache-mes ...
- Change Line Type in OpenCascade
Change Line Type in OpenCascade eryar@163.com 关键字KeyWords:OpenCascade,Line Aspect, Line Type 在OpenCa ...
- 华硕笔记本U盘启动系统/WinPE报错。Windows failed to start. A Recent hardware or software change might be the cause.
最近在整一台华硕笔记本,大概有5年寿命了吧,质量还行,由于系统出了问题,打算用自制U盘WinPE进去修复一下.按照个人经验,在主板设置里启用了USB启动选项,并且设置USB启动顺序为第一个,可是进系统 ...
- You cannot change a partition into an extended one or vice versa Delete it first
在Linux扩展LVM时,使用fdisk创建分区时,在磁盘上新建扩展分区(逻辑分区),修改分区格式,指定分区类型为8e时,报错"You cannot change a partition i ...
- [WPF系列]基础 Listening to Dependency Property change notifications of a given Element
I want to share this great post from Anoop that shows a easy way to add a notification system to dep ...
- 鼠标的change事件
原本想着在<input>输入输入框中添加change事件,来实现对输入内容的限定. 当人们在使用时跟多的会直接去点击完成.所以完成按钮的点击事件会和change事件产生 冲突,所以我把验证 ...
- Fold Change和t分布
基因表达谱数据 基因表达谱可以用一个矩阵来表示,每一行代表一个基因,每一列代表一个样本(如图1).所有基因的表达谱数据在“gene_exp.txt”文件中存储,第一列为基因的entrez geneid ...
随机推荐
- 2021-12-31:给定一个arr,里面的数字都是0~9, 你可以随意使用arr中的数字,哪怕打乱顺序也行, 请拼出一个能被3整除的,最大的数字,用str形式返回。 来自去哪儿网。
2021-12-31:给定一个arr,里面的数字都是0~9, 你可以随意使用arr中的数字,哪怕打乱顺序也行, 请拼出一个能被3整除的,最大的数字,用str形式返回. 来自去哪儿网. 答案2021-1 ...
- ET框架6.0分析三、网络通信
概述 ET框架的消息机制贯彻始终,包含Entity消息(Awake,Update ...),自定义(Customer)消息,网络消息等.而ET系统的进程包含了客户端.Gate等各种类型的服务器,进程包 ...
- SQL Server2019 新增字段并设置默认值
命令: ALTER TABLE 表名 add 列名 数据类型 default 默认值 not null 例如: ALTER TABLE LJEL005H add el_req int default ...
- harbor仓库主从同步
- odoo开发教程十三:qweb报表
一:概述 报表是使用qweb定义的,报表的pdf导出是使用wkhtmltopdf来完成的. 如果需要为一个模型创建报表,需要定义report及对应模板. 如果有需要的话还可以指定特定的纸张格式, 如果 ...
- ODOO13之六:Odoo 13开发之模型 – 结构化应用数据
在本系列文章第三篇Odoo 13 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...
- [音视频处理] FFmpeg使用指北1-视频解码
本文将详细介绍如何使用ffmpeg 4.4在C++中解码多种格式的媒体文件,这些媒体文件可以是视频.视频流.图片,或是桌面截屏或USB摄像头的实时图片.解码文件后,还将每帧图片转换为OpenCV的Ma ...
- 聊一聊 Python 安装中的 --enable-shared
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 今天在 CentOS 7.4 使用源码编译安装 Python-2.7.15 的时候,发现了一个 ...
- UpSetR:多数据集绘图可视化处理利器
说到集合数据可视化,我们第一时间想到的就是韦恩图.在 NGS 相关的研究中,韦恩图用来直观表征不同的集合之间元素重叠关系,是经常在文献中出现的图. 在集合数少的时候韦恩图是很好用的,但是当集合数多比如 ...
- DHCP配置;DHCP Relay配置
目录 DHCP 配置 实验拓扑 实验需求 实验步骤 1. 基于全局地址池的DHCP服务器给客户端分配IP地址 DHCP server 上配置如下 2. 在PC1上设置为DHCP自动获取方式,ipcon ...